Skip to content

signal: filter ignored dispositions and synchronize child oracle (493, 598) - #970

Open
ryanbreen wants to merge 7 commits into
mainfrom
signal/493-598-disposition-eintr
Open

signal: filter ignored dispositions and synchronize child oracle (493, 598)#970
ryanbreen wants to merge 7 commits into
mainfrom
signal/493-598-disposition-eintr

Conversation

@ryanbreen

Copy link
Copy Markdown
Owner

Addresses issues 493 and 598.

Cache installed ignored dispositions so delivery and interruptible waits share an O(1) predicate. Discard ignored signals at generation and disposition installation, preserve handled/fatal/stop delivery, and retain SIGCONT's generation-time resume action. Reap each block-I/O oracle child before advancing stages or asserting handler delivery.

The boot-only futex oracle injects pending SIGCHLD after the waiter is published as blocked. Strict scoring requires default SIGCHLD to time out and handled SIGCHLD to return EINTR. Removing the disposition filter makes the default arm fail in a guest run.

Validation at code commit 5e1a3923:

  • ARM64 strict original: 9/10; boot 10 passed both new arms but hit the UDP missing-arm signature tracked by issue 955. The failure is retained.
  • Separate unchanged-source strict sample: 10/10.
  • Service sequence: max 2/2 and cortex-a72 2/2, bucket 575 = 0 on both.
  • x86 boot-tests: 1/1; launch load 4.37; no preflight timeout retry.
  • ARM64 production profile: passed last. Structure preflights passed 69/69.

The round document contains POSIX references, the HEAD-derived caller census, mutation, claim-lint records, and limitations. Gate transcripts and serials are alongside it. No Tier-1/Tier-2 edits, GPU DMA lifetime repair, or full POSIX compliance claim.

ryanbreen and others added 7 commits September 8, 2026 06:29
…, 598)

Cache ignored dispositions for constant-time wait and delivery predicates.
Discard ignored signals at generation and disposition installation. Drive
blocked futex waits with default and handled SIGCHLD, pin their results in
the strict scorer, and reap each block-I/O oracle child before advancing.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Record the caller census, POSIX mechanism, child barrier, and mutation.
Preserve the original strict failure and the separate gate samples with
their source revision, plus the limits of the observations.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Address V-2, V-3 and V-4: publish futex measurements for sampling-thread
reporting, remove signal-delivery output, and validate executable reap
control flow and handler assertion ordering with negative mutations.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Append V-2, V-3 and V-4 closure evidence, exact predicate mutation,
committed source anchors, and architecture gate results with revisions.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
Record strict 2/3 and stop before service, x86, or PR landing.

Co-authored-by: Ryan Breen <ryan@breen.io>
Co-authored-by: Claude Code <noreply@anthropic.com>
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