mirror of
https://github.com/openai/codex.git
synced 2026-09-28 08:43:01 +08:00
## Why Concurrent tests can inherit writable descriptors for executable fixtures, causing `ETXTBSY` when those fixtures launch on Linux. ## What changed Expose shared `write_executable` and `copy_executable` helpers from `codex_utils_cargo_bin` and adopt them in CLI, exec-server, and MCP tests. On Linux, writes and copies complete in separate processes so sibling test spawns cannot inherit the writable descriptors. Script fixtures receive mode `0o755`, and copied executables retain their source permissions. Remove the executable-busy retry loop from the program resolver test now that its script uses the shared helper. GitOrigin-RevId: 61624158190bb1e75c27d9eb9c87a2defc147fb7
codex-utils-cargo-bin runfiles strategy
We disable the directory-based runfiles strategy and rely on the manifest
strategy across all platforms. This avoids Windows path length issues and keeps
behavior consistent in local and remote builds on all platforms. Bazel sets
RUNFILES_MANIFEST_FILE, and the codex-utils-cargo-bin helpers use the
runfiles crate to resolve runfiles via that manifest.
Function behavior:
cargo_bin: readsCARGO_BIN_EXE_*environment variables (set by Cargo or Bazel) and resolves them via the runfiles manifest whenRUNFILES_MANIFEST_FILEis present. When not under runfiles, it only accepts absolute paths fromCARGO_BIN_EXE_*and returns an error otherwise.find_resource!: used by tests to locate fixtures. It chooses the Bazel runfiles resolution path whenRUNFILES_MANIFEST_FILEis set, otherwise it falls back to aCARGO_MANIFEST_DIR-relative path for Cargo runs.
Background: