From 70b2437c2b3f1466f46bddb232ef76b5a914155d Mon Sep 17 00:00:00 2001 From: Gerd Zellweger Date: Mon, 3 Aug 2026 16:13:15 -0700 Subject: [PATCH] Revert "Disable aws-lc-sys jitter entropy to avoid startup SIGABRT" This reverts commit 6e8ecec4e634b365544d5d8b451838c8ec06f929. The SIGABRT it targeted was not CPU jitter entropy. The crash is aws-lc aborting when the arm64 RNDR instruction fails: some hosts advertise FEAT_RNG via ID_AA64ISAR0_EL1.RNDR while the instruction never actually returns entropy, and aws-lc abort()s instead of falling back to a software source. Disabling jitter entropy does not avoid that. It only changes which callback the hardware RNG backs, and so which abort fires. With CPU jitter enabled, RNDR backs get_prediction_resistance and the process aborts in rand.c:259; with it disabled, RNDR backs get_extra_entropy and it aborts in rand.c:294. Both are fatal, and the crashes continued after this commit landed. The mitigation is OPENSSL_armcap=~0x20000, which clears ARMV8_RNG at runtime so aws-lc routes around RNDR. That belongs in the deployment rather than the build, and is applied there. Signed-off-by: Gerd Zellweger --- .cargo/config.toml | 9 --------- crates/pipeline-manager/src/compiler/rust_compiler.rs | 6 ------ 2 files changed, 15 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index f556be5a41d..75007f794c8 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -6,12 +6,3 @@ # - 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 856547389e0..ea6de2232d6 100644 --- a/crates/pipeline-manager/src/compiler/rust_compiler.rs +++ b/crates/pipeline-manager/src/compiler/rust_compiler.rs @@ -1590,12 +1590,6 @@ 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")