From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 0900474C9C for ; Mon, 11 Oct 2021 15:57:42 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id ED9572168D for ; Mon, 11 Oct 2021 15:57:41 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id DE1CA21682 for ; Mon, 11 Oct 2021 15:57:40 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 8D82145C76; Mon, 11 Oct 2021 15:57:40 +0200 (CEST) Message-ID: <90c21c83-35d2-891c-896e-b42ceb038d85@proxmox.com> Date: Mon, 11 Oct 2021 15:57:39 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Thunderbird/94.0 Content-Language: en-US To: Thomas Lamprecht , Proxmox Backup Server development discussion References: <20211011121432.1006944-1-d.csapak@proxmox.com> <9594ead4-8077-c604-b1fc-541be829bd67@proxmox.com> <9dcaa7de-c32a-00c0-f8bd-1d801e7e1325@proxmox.com> <2d4963c3-d86c-b720-33db-239134320f43@proxmox.com> From: Dominik Csapak In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.298 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment NICE_REPLY_A -0.001 Looks like a legit reply (A) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: Re: [pbs-devel] [PATCH proxmox-backup v2 1/2] rest-server/worker-task: replace newlines with '\n' in task result X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Oct 2021 13:57:42 -0000 On 10/11/21 15:37, Thomas Lamprecht wrote: >> > > I do not mean the root cause that logged a newline at the end, we cannot avoid the future, > but the one that crates the TaskError enum, and if I'm not completely sleep deprived, that > is create_state. sorry, i misunderstood you, yes, the TaskState::Error gets created in 'create_state', and yes, it makes sense to do it already there... > >> but wanted to have a generic method to not have a wrong task state even >> when it happens again somewhere >> >> imho, percent encoding(%0A) is not nicer in this context here than \n > > percent encoding is an actual format than can be rendered again nicely, just randomly > mapping the \n control code (0x0A) to 0x5C 0x6E, without escaping existing (literal) \n > just isn't a used format, at least FWICR, that's my point in provoking that question. > while we could decode it again, existing tasks did not get encoded, so we would potentially decode some strings that shouldn't be decoded... we could also simply remove the newlines at all, i don't think we would benefit from having multiline error messages in tasks.. since most of the time we want to show a single line per task or what about trying to parse the task log backwards until we find a correct date+taskerror or at least a correct date? (in the first case we can assume that the newlines are part of the error, in the second the state would still be 'unknown' but with a correct date) if you don't like either approach, i'd send a version with percent-encoded/decoded, it's imho more important that we get the correct task state on task parsing than how we solve it exactly >> >>> >>>>> >>>>>> Signed-off-by: Dominik Csapak >>>>>> --- >>>>>> no changes >>>>>>    proxmox-rest-server/src/worker_task.rs | 2 +- >>>>>>    1 file changed, 1 insertion(+), 1 deletion(-) >>>>>> >>>>>> diff --git a/proxmox-rest-server/src/worker_task.rs b/proxmox-rest-server/src/worker_task.rs >>>>>> index 51394549..a8899ab9 100644 >>>>>> --- a/proxmox-rest-server/src/worker_task.rs >>>>>> +++ b/proxmox-rest-server/src/worker_task.rs >>>>>> @@ -494,7 +494,7 @@ impl TaskState { >>>>>>            match self { >>>>>>                TaskState::Error { message, .. } => format!("TASK ERROR: {}", message), >>>>>>                other => format!("TASK {}", other), >>>>>> -        } >>>>>> +        }.replace('\n', "\\n") // no newline in task result >>>>> >>>>> Why not `.trim_end()` ? A literal \n seems rather odd to me.. >>>>> >>>>> Comment suggestion: >>>>> >>>>> // our consumer already add \n where required, so avoid double-newline >>>> >>>> again that was not the issue >>> >>> well, the comment was not really helpful in that case either.. >>> >>> Also, in that case it would make more sense to operate on the TaskState::Error branch >>> or avoid setting such a bad state in the first place.. >> >> you're right, thats a better place >> >>> >>>> >>>>> >>>>>>        } >>>>>>          fn from_endtime_and_message(endtime: i64, s: &str) -> Result { >>>>>> >>>>> >>>> >>>> >>> >> >> >> >> _______________________________________________ >> pbs-devel mailing list >> pbs-devel@lists.proxmox.com >> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel >