diff --git a/.cargo/config.toml b/.cargo/config.toml index 75007f794c8..f556be5a41d 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -6,3 +6,12 @@ # - Also note that we can't change the major version without making sure # the database directories in ~/.feldera for users get upgraded too. POSTGRESQL_VERSION = "=15.13.0" + +# aws-lc-sys's CPU Jitter Entropy source can fail its startup health check on +# freshly-started VMs/containers (timing jitter too regular in the first +# seconds of process life), which aws-lc treats as fatal and aborts with no +# stderr output. This disables jitter entropy at build time, leaving +# getrandom(2) as the sole (and still sound) entropy source. +# See https://github.com/feldera/cloud/issues/1845 and +# https://github.com/aws/aws-lc-rs/issues/1072 +AWS_LC_SYS_NO_JITTER_ENTROPY = "1" diff --git a/crates/pipeline-manager/src/compiler/rust_compiler.rs b/crates/pipeline-manager/src/compiler/rust_compiler.rs index ea6de2232d6..856547389e0 100644 --- a/crates/pipeline-manager/src/compiler/rust_compiler.rs +++ b/crates/pipeline-manager/src/compiler/rust_compiler.rs @@ -1590,6 +1590,12 @@ async fn call_compiler( // Set compiler stack size to 20MB (10x the default) to prevent // SIGSEGV when the compiler runs out of stack on large programs. .env("RUST_MIN_STACK", "20971520") + // aws-lc-sys's CPU Jitter Entropy source can fail its startup health + // check on freshly-started VMs/containers and aborts the whole + // process with no stderr output (see feldera/cloud#1845). This env + // var must be set for this build too, since it links the pipeline + // binary that hits the abort, not just the pipeline-manager binary. + .env("AWS_LC_SYS_NO_JITTER_ENTROPY", "1") .current_dir(&workspace_dir) .arg("build") .arg("--workspace")