From 38eb71bdf55ee2f606d1d2ad2e987d5af16d88c0 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Tue, 17 Jun 2025 02:32:49 +0200 Subject: [PATCH] fix: always rm containers in docker mode --- backend/windmill-worker/src/bash_executor.rs | 28 +++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/backend/windmill-worker/src/bash_executor.rs b/backend/windmill-worker/src/bash_executor.rs index ec08003dd3..bde389e763 100644 --- a/backend/windmill-worker/src/bash_executor.rs +++ b/backend/windmill-worker/src/bash_executor.rs @@ -43,12 +43,11 @@ use crate::{ OccupancyMetrics, }, handle_child::handle_child, - DISABLE_NSJAIL, DISABLE_NUSER, HOME_ENV, NSJAIL_PATH, PATH_ENV, - POWERSHELL_CACHE_DIR, POWERSHELL_PATH, PROXY_ENVS, TZ_ENV, + DISABLE_NSJAIL, DISABLE_NUSER, HOME_ENV, NSJAIL_PATH, PATH_ENV, POWERSHELL_CACHE_DIR, + POWERSHELL_PATH, PROXY_ENVS, TZ_ENV, }; use windmill_common::client::AuthedClient; - #[cfg(windows)] use crate::SYSTEM_ROOT; @@ -275,6 +274,18 @@ exit $exit_status ))) } +async fn rm_container(client: &bollard::Docker, container_id: &str) { + if let Err(e) = client + .remove_container( + container_id, + Some(RemoveContainerOptions { force: true, ..Default::default() }), + ) + .await + { + tracing::error!("Error removing container: {:?}", e); + } +} + #[cfg(feature = "dind")] async fn handle_docker_job( job_id: Uuid, @@ -446,19 +457,12 @@ async fn handle_docker_job( } } } + rm_container(&client, &container_id).await; return Err(e); } - if let Err(e) = client - .remove_container( - &container_id, - Some(RemoveContainerOptions { force: true, ..Default::default() }), - ) - .await - { - tracing::error!("Error removing container: {:?}", e); - } + rm_container(&client, &container_id).await; let result = result.unwrap();