[pdm-devel] [PATCH proxmox-datacenter-manager v7 7/7] remote tasks: log error in case of task panic, instead of cancelling all tasks
Lukas Wagner
l.wagner at proxmox.com
Wed Aug 20 14:43:29 CEST 2025
Should hopefully never happen, but for cases like these we still want to
to persist the tasks from other nodes instead of failing completely.
Also remove the `set_node_failure` function for NodeFetchSuccessMap. For
panic'd tasks we don't have a straightforward way to get the node name,
and we only ever check for success any way, not failure.
Suggested-by: Dominik Csapak <d.csapak at proxmox.com>
Signed-off-by: Lukas Wagner <l.wagner at proxmox.com>
---
Notes:
New in v7.
server/src/bin/proxmox-datacenter-api/tasks/remote_tasks.rs | 5 +++--
server/src/remote_tasks/task_cache.rs | 5 -----
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/server/src/bin/proxmox-datacenter-api/tasks/remote_tasks.rs b/server/src/bin/proxmox-datacenter-api/tasks/remote_tasks.rs
index 4701a935..04c51dac 100644
--- a/server/src/bin/proxmox-datacenter-api/tasks/remote_tasks.rs
+++ b/server/src/bin/proxmox-datacenter-api/tasks/remote_tasks.rs
@@ -411,10 +411,11 @@ async fn fetch_tasks(
}
Err(error) => {
log::error!("could not fetch tasks: {error:#}");
- node_results.set_node_failure(remote.id.clone(), node_name);
}
},
- Err(err) => return Err(err.into()),
+ Err(error) => {
+ log::error!("could not join task fetching task: {error:#}");
+ }
}
}
}
diff --git a/server/src/remote_tasks/task_cache.rs b/server/src/remote_tasks/task_cache.rs
index 1afeaee4..e9e708e4 100644
--- a/server/src/remote_tasks/task_cache.rs
+++ b/server/src/remote_tasks/task_cache.rs
@@ -188,11 +188,6 @@ impl NodeFetchSuccessMap {
self.0.insert((remote, node), true);
}
- /// Mark a node of a given remote as failed.
- pub fn set_node_failure(&mut self, remote: String, node: String) {
- self.0.insert((remote, node), false);
- }
-
/// Returns whether tasks from a given node of a remote were successfully fetched.
pub fn node_successful(&self, remote: &str, node: &str) -> bool {
matches!(self.0.get(&(remote.into(), node.into())), Some(true))
--
2.47.2
More information about the pdm-devel
mailing list