From 43d2cf452293ac3bbb3be3a8fab6d8391ceff773 Mon Sep 17 00:00:00 2001 From: Alexander Petric Date: Fri, 3 Apr 2026 20:33:09 +0000 Subject: [PATCH] fix: move RESET ALL inside result_f async block Co-Authored-By: Claude Opus 4.5 --- backend/windmill-worker/src/pg_executor.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/backend/windmill-worker/src/pg_executor.rs b/backend/windmill-worker/src/pg_executor.rs index 2f678bc6e1..7bc992a6e4 100644 --- a/backend/windmill-worker/src/pg_executor.rs +++ b/backend/windmill-worker/src/pg_executor.rs @@ -357,11 +357,6 @@ pub async fn do_postgresql( (client, Some(handle)) } else { let (_, client) = mtex.as_ref().unwrap().as_ref().unwrap(); - // Reset all session state (role, search_path, statement_timeout, etc.) to defaults - // to prevent state leaking between unrelated script executions sharing this cached connection. - if let Err(e) = client.simple_query("RESET ALL").await { - tracing::warn!("Failed to RESET ALL on cached connection: {}", e); - } (client, None) }; @@ -374,6 +369,12 @@ pub async fn do_postgresql( let size = AtomicUsize::new(0); let size_ref = &size; let result_f = async move { + // Reset all session state (role, search_path, statement_timeout, etc.) to defaults + // to prevent state leaking between unrelated script executions sharing this cached connection. + if has_cached_con { + let _ = client.simple_query("RESET ALL").await; + } + let mut results = vec![]; for (i, query) in queries.iter().enumerate() { if annotations.prepare {