From 6c25588e637930c22a1334e7a1fe9292fd2f2222 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Thu, 24 Sep 2020 16:13:53 +0200 Subject: [PATCH] proxy: fix error handling in prune scheduling we rely on the jobstate handling to write the error of the worker into its state file, but we used '?' here in a block which does not return the error to the block, but to the function/closure instead so if a prune job failed because of such an '?', we did not write into the statefile and got a wrong state there instead use our try_block! macro that wraps the code in a closure Signed-off-by: Dominik Csapak --- src/bin/proxmox-backup-proxy.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/proxmox-backup-proxy.rs b/src/bin/proxmox-backup-proxy.rs index 8a6dfe36..b4759f58 100644 --- a/src/bin/proxmox-backup-proxy.rs +++ b/src/bin/proxmox-backup-proxy.rs @@ -434,7 +434,7 @@ async fn schedule_datastore_prune() { job.start(&worker.upid().to_string())?; - let result = { + let result = try_block!({ worker.log(format!("Starting datastore prune on store \"{}\"", store)); worker.log(format!("task triggered by schedule '{}'", event_str)); @@ -463,7 +463,7 @@ async fn schedule_datastore_prune() { } } Ok(()) - }; + }); let status = worker.create_state(&result);