From a4c1143664692207ec1b0ec6507e145f57cfc62f Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Mon, 7 Sep 2020 14:50:01 +0200 Subject: [PATCH] server/worker_task: fix upid_read_status a range from high to low in rust results in an empty range (see std::ops::Range documentation) so we need to generate the range from 0..data.len() and then reverse it also, the task log contains a newline at the end, so we have to remove that (should it exist) Signed-off-by: Dominik Csapak --- src/server/worker_task.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/server/worker_task.rs b/src/server/worker_task.rs index 997c2492..28e62ba2 100644 --- a/src/server/worker_task.rs +++ b/src/server/worker_task.rs @@ -210,9 +210,14 @@ pub fn upid_read_status(upid: &UPID) -> Result { let mut data = Vec::with_capacity(8192); file.read_to_end(&mut data)?; + // task logs should end with newline, we do not want it here + if data[data.len()-1] == b'\n' { + data.pop(); + } + let last_line = { let mut start = 0; - for pos in data.len()-1..=0 { + for pos in (0..data.len()).rev() { if data[pos] == b'\n' { start = pos + 1; break;