breadbug client shutdown hangs and native handler changes signal behavior #75
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found during independent BREAD-16/BREAD-17 exact-head review of bread-ecosystem PR68 at
b2614ba0e1. Confidence high for reproduced defects, source-based for async-signal-safety/backpressure. Repair on existing PR68, not a duplicate implementation PR.Compiled /tmp/opencode/pr68-probe.rs against this immutable head:
Evidence /tmp/opencode/pr68-probe.rs and pr68-tests.log; scratch ~/.worktrees/bread-ecosystem/review-pr68. Add bounded-shutdown with surviving logger, raised fatal signal, prior handler/alt-stack restoration, loader contention and drop-oldest/rate/privacy regressions. Preserve PR/branch; no merge authorized.
Review of PR 68 at
63b855bce6: the defects in this card are fixed except the drop-newest behavior, which came back in a different form. Shutdown with a live logger clone is bounded (test passed; drop uses a 500 ms done-channel, mod.rs:562-594). Raised SIGSEGV now dies with signal 11 (independent probe). Prior SIG_IGN is chained: raise survives, a synchronous fault terminates. Prior actions are saved and restored; setup failure leaves SIGSEGV unchanged (test passed). Handler no longer calls backtrace(3); it walks ucontext RIP/RBP through a pipe (native.rs:248-308). Client redaction runs before the socket (scrub.rs); probe wire contained no raw email, token, or IP. Full-queue eviction is oldest-first, but try_lock on a busy take drops the newest line while the queue still has room. That failure is ECO-77. Not closed.Independent re-review PR68 at
47dbe00f5e: changes requested. Queue::push retries for 1ms then calls blocking lock; app-thread log can stall unbounded if lock holder is preempted. No IO under lock does not bound lock wait. Replace with bounded/nonblocking enqueue preserving newest below cap; add held-lock regression verifying prompt return and retention. Full persisted verdict: PR comment #68 (comment). Preserve CLIP-19/store/pilot gates; no tag and no done.Independent re-review of PR68 at
711e3e8261: ECO-77/provider implementation passes, conditional on exact-SHA CI green. Persisted verdict/evidence: #68 (comment). Queue nonblocking/drop-oldest tests and workspace suite passed; integrated store prerequisite is present, but CLIP-19 pilot remains unmerged. This is not full BREAD-16/17 acceptance. Preserve pilot/rollout gates, keep cards in review, and do not mark done. No merge until check/check (push) is green; then re-read current head/base/reviews/mergeability and merge per authorization, no tag.Independent final defect gate on merged PR68 (code head
711e3e8261, merge94ea37490f): ECO-76 defect acceptance PASS. All six original defects (bounded shutdown with live logger, raised signal fatal, prior action save/restore/chain, no backtrace in handler, drop-oldest plus rate limit, pre-send redaction) verified against merged source and tests. Residual: no committed test for raised signal or prior SIG_IGN, probe-verified only; follow-up test card recommended. Merge tree verified equal to reviewed head (all 15 PR blobs identical; synthetic merge-tree of base4f70691+ head equals merge tree). Exact-SHA check/check (push) success on711e3e8(run 302) and on merge (run 303); reviews API empty. Own reruns on94ea374: bug:: 38 passed, bug_crashes 7 passed, raised/kill/fault signal probe. Full evidence and per-defect map: #68 (comment). Not full BREAD-16/17 acceptance: CLIP-19 pilot, rollout and overhead gates stay open. No tag, no done set by this pass; board transition is the coordinator's.Coordinator completion: final independent defect-only pass PR68 comment5312 recovered at exact711e3e8, integrated94ea374 tree verified and green check/devbakery/devtheme. Coordinator prior clean merged38bug+7crash tests pass, reviewer repeated38bug+7crash and fatal-signal probes. No full BREAD16/17 or pilot completion claim; those remain separate gates.