diff --git a/.bazelrc b/.bazelrc index 112c2301e255..30d9ad9d34cb 100644 --- a/.bazelrc +++ b/.bazelrc @@ -33,6 +33,10 @@ common:windows --test_env=PATH common:windows --test_env=SYSTEMROOT common:windows --test_env=COMSPEC common:windows --test_env=WINDIR +# Rust's libtest harness runs test bodies on std-spawned threads. The default +# 2 MiB stack can be too small for large async test futures on Windows CI; see +# https://github.com/openai/codex/pull/19067 for the motivating failure. +common --test_env=RUST_MIN_STACK=8388608 # 8 MiB common --test_output=errors common --bes_results_url=https://app.buildbuddy.io/invocation/ diff --git a/.github/workflows/rust-ci-full.yml b/.github/workflows/rust-ci-full.yml index 7cda682952fa..eb690a9bad39 100644 --- a/.github/workflows/rust-ci-full.yml +++ b/.github/workflows/rust-ci-full.yml @@ -76,6 +76,8 @@ jobs: - name: Test argument comment lint package working-directory: tools/argument-comment-lint run: cargo test + env: + RUST_MIN_STACK: "8388608" # 8 MiB argument_comment_lint_prebuilt: name: Argument comment lint - ${{ matrix.name }} @@ -671,6 +673,7 @@ jobs: run: cargo nextest run --no-fail-fast --target ${{ matrix.target }} --cargo-profile ci-test --timings env: RUST_BACKTRACE: 1 + RUST_MIN_STACK: "8388608" # 8 MiB NEXTEST_STATUS_LEVEL: leak - name: Upload Cargo timings (nextest) diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml index f62e5458a369..42a3ca876412 100644 --- a/.github/workflows/rust-ci.yml +++ b/.github/workflows/rust-ci.yml @@ -131,6 +131,8 @@ jobs: - name: Test argument comment lint package working-directory: tools/argument-comment-lint run: cargo test + env: + RUST_MIN_STACK: "8388608" # 8 MiB argument_comment_lint_prebuilt: name: Argument comment lint - ${{ matrix.name }} diff --git a/defs.bzl b/defs.bzl index d1e38ea91b7c..71a313841811 100644 --- a/defs.bzl +++ b/defs.bzl @@ -18,11 +18,11 @@ PLATFORMS = [ WINDOWS_RUSTC_LINK_FLAGS = select({ "@rules_rs//rs/experimental/platforms/constraints:windows_gnullvm": [ "-C", - "link-arg=-Wl,--stack,8388608", + "link-arg=-Wl,--stack,8388608", # 8 MiB ], "@rules_rs//rs/experimental/platforms/constraints:windows_msvc": [ "-C", - "link-arg=/STACK:8388608", + "link-arg=/STACK:8388608", # 8 MiB "-C", "link-arg=/NODEFAULTLIB:libucrt.lib", "-C", diff --git a/justfile b/justfile index d44bbda21d63..ca74c2e5c647 100644 --- a/justfile +++ b/justfile @@ -1,6 +1,8 @@ set working-directory := "codex-rs" set positional-arguments +rust_min_stack := "8388608" # 8 MiB + # Display help help: just -l @@ -49,7 +51,7 @@ install: # Prefer this for routine local runs. Workspace crate features are banned, so # there should be no need to add `--all-features`. test: - cargo nextest run --no-fail-fast + RUST_MIN_STACK={{ rust_min_stack }} cargo nextest run --no-fail-fast # Build and run Codex from source using Bazel. # Note we have to use the combination of `[no-cd]` and `--run_under="cd $PWD &&"`