diff --git a/backend/windmill-worker/src/bash_executor.rs b/backend/windmill-worker/src/bash_executor.rs index a0793c7c25..4d5b639630 100644 --- a/backend/windmill-worker/src/bash_executor.rs +++ b/backend/windmill-worker/src/bash_executor.rs @@ -14,6 +14,7 @@ use crate::{ transform_json_value, write_file, }, AuthedClientBackgroundTask, DISABLE_NSJAIL, DISABLE_NUSER, HOME_ENV, NSJAIL_PATH, PATH_ENV, + TZ_ENV, }; lazy_static::lazy_static! { @@ -226,6 +227,7 @@ pub async fn handle_powershell_job( .current_dir(job_dir) .env_clear() .envs(reserved_variables) + .env("TZ", TZ_ENV.as_str()) .env("PATH", PATH_ENV.as_str()) .env("BASE_INTERNAL_URL", base_internal_url) .args(cmd_args) @@ -239,6 +241,7 @@ pub async fn handle_powershell_job( .env_clear() .envs(envs) .envs(reserved_variables) + .env("TZ", TZ_ENV.as_str()) .env("PATH", PATH_ENV.as_str()) .env("BASE_INTERNAL_URL", base_internal_url) .env("HOME", HOME_ENV.as_str()) diff --git a/backend/windmill-worker/src/bun_executor.rs b/backend/windmill-worker/src/bun_executor.rs index 7b59172972..9d079a4214 100644 --- a/backend/windmill-worker/src/bun_executor.rs +++ b/backend/windmill-worker/src/bun_executor.rs @@ -19,7 +19,7 @@ use crate::{ write_file, write_file_binary, }, AuthedClientBackgroundTask, BUN_CACHE_DIR, BUN_PATH, DISABLE_NSJAIL, DISABLE_NUSER, - NPM_CONFIG_REGISTRY, NSJAIL_PATH, PATH_ENV, + NPM_CONFIG_REGISTRY, NSJAIL_PATH, PATH_ENV, TZ_ENV, }; #[cfg(feature = "enterprise")] @@ -418,6 +418,7 @@ plugin(p) pub fn get_common_bun_proc_envs(base_internal_url: &str) -> HashMap { let mut deno_envs: HashMap = HashMap::from([ (String::from("PATH"), PATH_ENV.clone()), + (String::from("TZ"), TZ_ENV.clone()), (String::from("DISABLE_COLORS"), "0".to_string()), (String::from("DO_NOT_TRACK"), "1".to_string()), ( diff --git a/backend/windmill-worker/src/deno_executor.rs b/backend/windmill-worker/src/deno_executor.rs index 9051c342e3..4a2445e035 100644 --- a/backend/windmill-worker/src/deno_executor.rs +++ b/backend/windmill-worker/src/deno_executor.rs @@ -9,7 +9,7 @@ use crate::{ write_file, }, AuthedClientBackgroundTask, DENO_CACHE_DIR, DENO_PATH, DISABLE_NSJAIL, NPM_CONFIG_REGISTRY, - PATH_ENV, + PATH_ENV, TZ_ENV, }; use tokio::{fs::File, io::AsyncReadExt, process::Command}; use windmill_common::{error::Result, BASE_URL}; @@ -50,6 +50,7 @@ fn get_common_deno_proc_envs(token: &str, base_internal_url: &str) -> HashMap = HashMap::from([ (String::from("PATH"), PATH_ENV.clone()), + (String::from("TZ"), TZ_ENV.clone()), (String::from("DENO_AUTH_TOKENS"), deno_auth_tokens), ( String::from("BASE_INTERNAL_URL"), diff --git a/backend/windmill-worker/src/go_executor.rs b/backend/windmill-worker/src/go_executor.rs index 262b7e9763..a0e0bc5920 100644 --- a/backend/windmill-worker/src/go_executor.rs +++ b/backend/windmill-worker/src/go_executor.rs @@ -20,7 +20,7 @@ use crate::{ set_logs, write_file, }, AuthedClientBackgroundTask, DISABLE_NSJAIL, DISABLE_NUSER, GOPRIVATE, GOPROXY, - GO_BIN_CACHE_DIR, GO_CACHE_DIR, HOME_ENV, NSJAIL_PATH, PATH_ENV, + GO_BIN_CACHE_DIR, GO_CACHE_DIR, HOME_ENV, NSJAIL_PATH, PATH_ENV, TZ_ENV, }; const GO_REQ_SPLITTER: &str = "//go.sum\n"; @@ -233,6 +233,7 @@ func Run(req Req) (interface{{}}, error){{ .envs(envs) .envs(reserved_variables) .env("PATH", PATH_ENV.as_str()) + .env("TZ", TZ_ENV.as_str()) .env("BASE_INTERNAL_URL", base_internal_url) .args(vec!["--config", "run.config.proto", "--", "/tmp/go/main"]) .stdout(Stdio::piped()) @@ -246,6 +247,7 @@ func Run(req Req) (interface{{}}, error){{ .envs(envs) .envs(reserved_variables) .env("PATH", PATH_ENV.as_str()) + .env("TZ", TZ_ENV.as_str()) .env("BASE_INTERNAL_URL", base_internal_url) .env("GOPATH", GO_CACHE_DIR) .env("HOME", HOME_ENV.as_str()); diff --git a/backend/windmill-worker/src/python_executor.rs b/backend/windmill-worker/src/python_executor.rs index f7787776e8..4dc68a3ead 100644 --- a/backend/windmill-worker/src/python_executor.rs +++ b/backend/windmill-worker/src/python_executor.rs @@ -62,7 +62,7 @@ use crate::{ write_file, }, AuthedClientBackgroundTask, DISABLE_NSJAIL, DISABLE_NUSER, HTTPS_PROXY, HTTP_PROXY, - LOCK_CACHE_DIR, NO_PROXY, NSJAIL_PATH, PATH_ENV, PIP_CACHE_DIR, + LOCK_CACHE_DIR, NO_PROXY, NSJAIL_PATH, PATH_ENV, PIP_CACHE_DIR, TZ_ENV, }; pub async fn create_dependencies_dir(job_dir: &str) { @@ -439,6 +439,7 @@ mount {{ // inject PYTHONPATH here - for some reason I had to do it in nsjail conf .envs(reserved_variables) .env("PATH", PATH_ENV.as_str()) + .env("TZ", TZ_ENV.as_str()) .env("BASE_INTERNAL_URL", base_internal_url) .args(vec![ "--config", @@ -459,6 +460,7 @@ mount {{ .envs(envs) .envs(reserved_variables) .env("PATH", PATH_ENV.as_str()) + .env("TZ", TZ_ENV.as_str()) .env("BASE_INTERNAL_URL", base_internal_url) .args(vec!["-u", "-m", "wrapper"]) .stdout(Stdio::piped()) diff --git a/backend/windmill-worker/src/worker.rs b/backend/windmill-worker/src/worker.rs index 51188b6242..a18c07f22f 100644 --- a/backend/windmill-worker/src/worker.rs +++ b/backend/windmill-worker/src/worker.rs @@ -218,6 +218,7 @@ lazy_static::lazy_static! { pub static ref NSJAIL_PATH: String = std::env::var("NSJAIL_PATH").unwrap_or_else(|_| "nsjail".to_string()); pub static ref PATH_ENV: String = std::env::var("PATH").unwrap_or_else(|_| String::new()); pub static ref HOME_ENV: String = std::env::var("HOME").unwrap_or_else(|_| String::new()); + pub static ref TZ_ENV: String = std::env::var("TZ").unwrap_or_else(|_| String::new()); pub static ref GOPRIVATE: Option = std::env::var("GOPRIVATE").ok(); pub static ref GOPROXY: Option = std::env::var("GOPROXY").ok(); pub static ref NETRC: Option = std::env::var("NETRC").ok();