From ca6aeaef011ae40ca8d27d572f3d650ed98aed29 Mon Sep 17 00:00:00 2001 From: Charles Cunningham Date: Wed, 18 Feb 2026 19:29:23 -0800 Subject: [PATCH] Increase Tokio worker stack to avoid detached review overflow --- codex-rs/arg0/src/lib.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/codex-rs/arg0/src/lib.rs b/codex-rs/arg0/src/lib.rs index 9563737839..6a0651d936 100644 --- a/codex-rs/arg0/src/lib.rs +++ b/codex-rs/arg0/src/lib.rs @@ -13,7 +13,9 @@ const APPLY_PATCH_ARG0: &str = "apply_patch"; const MISSPELLED_APPLY_PATCH_ARG0: &str = "applypatch"; const LOCK_FILENAME: &str = ".lock"; #[cfg(target_os = "windows")] -const WINDOWS_TOKIO_WORKER_STACK_SIZE_BYTES: usize = 16 * 1024 * 1024; +const TOKIO_WORKER_STACK_SIZE_BYTES: usize = 16 * 1024 * 1024; +#[cfg(not(target_os = "windows"))] +const TOKIO_WORKER_STACK_SIZE_BYTES: usize = 4 * 1024 * 1024; /// Keeps the per-session PATH entry alive and locked for the process lifetime. pub struct Arg0PathEntryGuard { @@ -129,12 +131,10 @@ where fn build_runtime() -> anyhow::Result { let mut builder = tokio::runtime::Builder::new_multi_thread(); builder.enable_all(); - #[cfg(target_os = "windows")] - { - // Defensive hardening: Windows worker threads have lower effective - // stack headroom, so use a larger stack for runtime workers. - builder.thread_stack_size(WINDOWS_TOKIO_WORKER_STACK_SIZE_BYTES); - } + // Bazel/Linux workers commonly run with the default Tokio worker stack (2 MiB), + // which can overflow in deeper app-server startup paths (for example, detached review thread init). + // Pin a larger worker stack across platforms (Windows keeps the larger 16 MiB value). + builder.thread_stack_size(TOKIO_WORKER_STACK_SIZE_BYTES); Ok(builder.build()?) }