Skip to content

Coordinate Go oracle termination across process launch - #4

Merged
rohenaz merged 1 commit into
mainfrom
codex/go-oracle-linux-termination
Aug 31, 2026
Merged

Coordinate Go oracle termination across process launch#4
rohenaz merged 1 commit into
mainfrom
codex/go-oracle-linux-termination

Conversation

@rohenaz

@rohenaz rohenaz commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Summary

  • model Go-oracle child launch, pending shutdown, running, and exited states explicitly
  • queue shutdown requests until Process.run() has assigned a positive PID
  • serialize graceful and forced termination for persistent and one-shot children
  • preserve the original typed responseTooLarge failure while shutdown races normal exit

Why

PR #1 exposed a pre-existing Swift Foundation 6.1 launch-order race on Linux: Process.isRunning becomes true before processIdentifier is assigned. A pipe callback can therefore reach Process.terminate() during launch and trip its positive-PID precondition with SIGILL. This is a test-harness baseline fix, not BRC-100 production behavior.

Verification

  • overlong response regression: 30/30 repeated passes
  • focused GoOracleProtocolTests: 18/18 passed
  • full swift test: 796 passed
  • exact Linux CI is the runtime-specific proof

@rohenaz rohenaz changed the title Avoid concurrent Process termination on Linux Coordinate Go oracle termination across process launch Aug 31, 2026
@rohenaz
rohenaz force-pushed the codex/go-oracle-linux-termination branch from c0a7319 to 33d0db3 Compare August 31, 2026 02:07
@rohenaz
rohenaz merged commit c0e5117 into main Aug 31, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant