Make forced signal flush raw-clone safe - #4222
cataphract wants to merge 3 commits into
Conversation
Prepare an independent sidecar connection and serialized flush request before signal delivery. The SIGINT and SIGTERM handler starts a one-shot raw clone that uses audited direct syscalls while waiting for an ACK or timeout, avoiding libc and allocator state in the unrepaired clone. Track worker lifetime with lock-free the kernel clear_child_tid futex protocol.
❌ ErrorsYour PR has failed checks. Please review the issues below and take necessary action before merging. 🚦 10 Pipeline jobs failed
ℹ️ InfoNo other issues found (see more)❄️ No new flaky tests detected 🎯 Code Coverage (details) Useful? React with 👍 / 👎 This comment will be updated automatically if new data arrives.🔗 Commit SHA: 4db9916 | Docs | View more details | Give us feedback! |
Benchmarks [ tracer ]Benchmark execution time: 2026-09-28 10:39:49 Comparing candidate commit 484285f in PR branch Found 0 performance improvements and 1 performance regressions! Performance is the same for 193 metrics, 0 unstable metrics.
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 785f2051ba
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
A sidecar restart left the prepared signal socket stale after the normal transport recovered, so forced shutdown could skip its flush. Refresh the socket from the replacement transport while it is still unclaimed. Publish before freeing the retired object so cross-thread signals cannot deadlock on allocator state.
785f205 to
4db9916
Compare
Avoid allocation crashes in the flush worker launched by the sigterm/sigint handler.
Prepare an independent sidecar connection and serialized flush request before signal delivery. The SIGINT and SIGTERM handler starts a one-shot raw clone that uses audited direct syscalls while waiting for an ACK or timeout, avoiding libc and allocator state in the unrepaired clone.
Track worker lifetime with lock-free the kernel clear_child_tid futex protocol.
See also the internal 2a04c87e-b050-11f1-bb9c-da7ad0900002 in error telemetry, among others.