Fix relative MCP server spawning on macOS - #42117
Merged
copyberry[bot] merged 1 commit intoSep 1, 2026
Merged
Conversation
## Why Rust falls back to `fork` when a macOS command combines a relative executable path with a working directory, due to a historical `posix_spawnp` issue. This can make local MCP server startup less reliable. ## What changed - Spawn relative macOS MCP executables directly with `posix_spawn`, preserving the configured path, `argv[0]`, working directory, environment, stdio, and process group. - Keep the existing launcher for `PATH` lookup and executable text files without a shebang. - Use one local child wrapper for legacy and 2026-07-28 protocol framing, with cancellation-safe waiting and cleanup that kills and reaps dropped children. ## Testing Add macOS regression coverage for relative scripts, argument and descriptor preservation, launch errors, cancelled waits, and cleanup after runtime shutdown. GitOrigin-RevId: 1cbc6b90aed6f67e0a38f551964d80496ebc4471
copyberry
Bot
force-pushed
the
copyberry/codex-internal-to-codex-oss/1cbc6b90aed6f67e0a38f551964d80496ebc4471
branch
from
September 1, 2026 18:54
f8f514d to
ea7e071
Compare
copyberry
Bot
deleted the
copyberry/codex-internal-to-codex-oss/1cbc6b90aed6f67e0a38f551964d80496ebc4471
branch
September 1, 2026 18:55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix relative MCP server spawning on macOS
Why
Rust falls back to
forkwhen a macOS command combines a relative executablepath with a working directory, due to a historical
posix_spawnpissue. Thiscan make local MCP server startup less reliable.
What changed
posix_spawn, preservingthe configured path,
argv[0], working directory, environment, stdio, andprocess group.
PATHlookup and executable text files withouta shebang.
cancellation-safe waiting and cleanup that kills and reaps dropped children.
Testing
Add macOS regression coverage for relative scripts, argument and descriptor
preservation, launch errors, cancelled waits, and cleanup after runtime shutdown.