Skip to content

Commit eadf73a

Browse files
linesightclaude
andcommitted
macos: ad-hoc codesign subprocess and .so to fix MachPortRendezvous failures
Chrome 130+ MachPortRendezvousServerMac validates the signature of each connecting subprocess via process_requirement.cc. Without a valid code signature the server rejects the connection, bootstrap_look_up returns BOOTSTRAP_UNKNOWN_SERVICE (1102), and shared_memory_switch.cc kills the subprocess ("No rendezvous client, terminating process"). The browser process also fails its own process_requirement check (-67030) when it has loaded the unsigned cefpython_py*.so extension, because macOS marks the process code signature as invalid when an unsigned library is dlopen'd into a signed process. Ad-hoc signing both the subprocess binary and the Python extension gives them a valid (self-signed) code identity that process_requirement.cc accepts, restoring normal MachPortRendezvousClient operation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 8290b0a commit eadf73a

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

.github/workflows/ci-macos.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,12 @@ jobs:
118118
run: |
119119
cp -r build/artifacts/. cefpython3/
120120
chmod +x cefpython3/subprocess
121+
# Ad-hoc sign binaries so macOS process_requirement.cc validation
122+
# does not fail with -67030. That failure restricts the bootstrap
123+
# namespace for child processes and breaks MachPortRendezvousClient
124+
# bootstrap_look_up, causing all subprocesses to crash on startup.
125+
codesign --force --sign - cefpython3/subprocess
126+
for f in cefpython3/cefpython_py*.so; do codesign --force --sign - "$f"; done
121127
122128
- name: Run unit tests
123129
run: |

0 commit comments

Comments
 (0)