From adc9fe722d8511a5914d81faac40af757e7f5e3f Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Fri, 3 Apr 2026 15:58:54 -0400 Subject: [PATCH 1/2] fix: gate relock_skip tests on private feature and update ee-repo-ref (#8703) Co-authored-by: Claude Opus 4.6 (1M context) --- backend/tests/dedicated_workers.rs | 38 ++++++++++++++++++++++++ backend/tests/relock_skip.rs | 13 +++++--- backend/windmill-trigger/src/listener.rs | 1 + 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/backend/tests/dedicated_workers.rs b/backend/tests/dedicated_workers.rs index c5f5ac7617..a986c0637a 100644 --- a/backend/tests/dedicated_workers.rs +++ b/backend/tests/dedicated_workers.rs @@ -83,6 +83,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_rawscript_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000001, }) .arg("x", json!(5)) @@ -119,6 +120,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_script_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000002, }) .arg("x", json!(7)) @@ -157,6 +159,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_multi_step_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000003, }) .arg("x", json!(5)) @@ -198,6 +201,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bun, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -239,6 +243,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bun, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -256,6 +261,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bun, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -318,6 +324,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_flow_runners".to_string(), dedicated_worker: None, apply_preprocessor: false, + labels: None, version: 3000000000000004, }) .run_until_complete(&db, false, port) @@ -346,6 +353,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_deno_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000005, }) .arg("x", json!(5)) @@ -380,6 +388,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_python_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000006, }) .arg("x", json!(5)) @@ -415,6 +424,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_bunnative_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000007, }) .arg("x", json!(5)) @@ -452,6 +462,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_nodejs_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000008, }) .arg("x", json!(5)) @@ -486,6 +497,7 @@ mod dedicated_worker_tests { path: "f/system/conflict_flow_a".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000009, }) .arg("x", json!(5)) @@ -496,6 +508,7 @@ mod dedicated_worker_tests { path: "f/system/conflict_flow_b".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000010, }) .arg("x", json!(5)) @@ -546,6 +559,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bun, priority: None, apply_preprocessor: true, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -603,6 +617,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bun, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -616,6 +631,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_conflict_standalone_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000011, }) .arg("x", json!(7)) @@ -664,6 +680,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_mixed_lang_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000012, }) .arg("x", json!(5)) @@ -721,6 +738,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_flow_runners_bash".to_string(), dedicated_worker: None, apply_preprocessor: false, + labels: None, version: 3000000000000013, }) .run_until_complete(&db, false, port) @@ -753,6 +771,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Python3, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -770,6 +789,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Python3, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -822,6 +842,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bun, priority: None, apply_preprocessor: true, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -840,6 +861,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bun, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -900,6 +922,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_branch_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000014, }) .arg("x", json!(20)) @@ -911,6 +934,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_branch_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000014, }) .arg("x", json!(5)) @@ -958,6 +982,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Python3, priority: None, apply_preprocessor: true, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -1007,6 +1032,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Deno, priority: None, apply_preprocessor: true, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -1057,6 +1083,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bunnative, priority: None, apply_preprocessor: true, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -1109,6 +1136,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Python3, priority: None, apply_preprocessor: true, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -1126,6 +1154,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Python3, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -1187,6 +1216,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bun, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -1204,6 +1234,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bun, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -1257,6 +1288,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Bun, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -1300,6 +1332,7 @@ mod dedicated_worker_tests { language: windmill_common::scripts::ScriptLang::Python3, priority: None, apply_preprocessor: false, + labels: None, concurrency_settings: windmill_common::runnable_settings::ConcurrencySettings::default( ), debouncing_settings: windmill_common::runnable_settings::DebouncingSettings::default(), @@ -1338,6 +1371,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_forloop_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000015, }) .push(&db) @@ -1374,6 +1408,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_forloop_multi_step_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000019, }) .push(&db) @@ -1412,6 +1447,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_whileloop_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000016, }) .arg("x", json!(1)) @@ -1450,6 +1486,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_branchall_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000017, }) .arg("x", json!(5)) @@ -1488,6 +1525,7 @@ mod dedicated_worker_tests { path: "f/system/dedicated_nested_flow".to_string(), dedicated_worker: Some(true), apply_preprocessor: false, + labels: None, version: 3000000000000018, }) .push(&db) diff --git a/backend/tests/relock_skip.rs b/backend/tests/relock_skip.rs index 9aae97adf3..44e8de3db9 100644 --- a/backend/tests/relock_skip.rs +++ b/backend/tests/relock_skip.rs @@ -101,7 +101,9 @@ mod relock_skip { before } - #[cfg(feature = "python")] + // Requires `private` feature for the dependency job concurrency limit that prevents + // race conditions between concurrent dep jobs for the same flow/app. + #[cfg(all(feature = "python", feature = "private"))] #[sqlx::test(fixtures("base", "dependency_map"))] async fn relock_skip_on_script_redeployment(db: Pool) -> anyhow::Result<()> { std::env::set_var("DEPENDENCY_JOB_DEBOUNCE_DELAY", "0"); @@ -128,8 +130,9 @@ def main(): .await .unwrap(); - // leaf_1(1) + branch(1) + root_script(2: leaf_1+branch) + root_flow(2) + root_app(2) = 8 jobs - wait_for_jobs(&mut completed, 8).await; + // leaf_1(1) + branch(1) + root_script(1-2) + root_flow(1-2) + root_app(1-2) = 5-8 jobs + // With debouncing (private feature), duplicate dep jobs from branch cascade may be coalesced. + wait_for_jobs_ge(&mut completed, 5).await; let skipping_count = count_pattern_in_job_logs(&db, "Skipping relock", before).await; let relocking_count = count_pattern_in_job_logs(&db, "Relocking", before).await; @@ -236,7 +239,9 @@ def main(): Ok(()) } - #[cfg(feature = "python")] + // Requires `private` feature for the dependency job concurrency limit that prevents + // race conditions between concurrent dep jobs for the same flow/app. + #[cfg(all(feature = "python", feature = "private"))] #[sqlx::test(fixtures("base", "dependency_map"))] async fn relock_skip_on_workspace_deps_redeployment(db: Pool) -> anyhow::Result<()> { use windmill_common::scripts::ScriptLang; diff --git a/backend/windmill-trigger/src/listener.rs b/backend/windmill-trigger/src/listener.rs index 383a7ef174..8344b71867 100644 --- a/backend/windmill-trigger/src/listener.rs +++ b/backend/windmill-trigger/src/listener.rs @@ -69,6 +69,7 @@ pub trait Listener: TriggerCrud + TriggerJobArgs { "error_handler_path", "error_handler_args", "retry", + "labels", ]; fields.extend_from_slice(Self::ADDITIONAL_SELECT_FIELDS); From 18eb6e0df7fba8c2c800dce5264103a373ee7057 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Fri, 3 Apr 2026 19:59:30 +0000 Subject: [PATCH 2/2] point to latest otel --- backend/ee-repo-ref.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/ee-repo-ref.txt b/backend/ee-repo-ref.txt index 585c97cda5..d7f881f6b2 100644 --- a/backend/ee-repo-ref.txt +++ b/backend/ee-repo-ref.txt @@ -1 +1 @@ -681b725781611510ed3040c00e8f9b8497d6feda \ No newline at end of file +ef37ca96f140dcd553226fac6bce3ef6d57ec03d \ No newline at end of file