Run full validation on Ubuntu - #2
Merged
Merged
Conversation
jkomyno
force-pushed
the
fix/build-issues
branch
from
March 18, 2026 12:48
52fb3de to
2923c50
Compare
sorenbs
added a commit
that referenced
this pull request
Jul 27, 2026
stage instrumentation, campaign teardown guard Review #2's blocking conditions, each either verified-as-built or fixed: 1. Post-ACK is now proven, not asserted. The barrier was already capture-target-before-flush + pump-dispatches-itself (gate- serialized), which makes "acks on the wire before gathering" hold regardless of who wins the dispatch race. Two scenarios pin it: the_gather_window_waits_for_ack_dispatch holds the dispatch gate (the deterministic "acker paused after durability") and shows no gather decision until the held ack reaches its client; commits_during_a_flush_do_not_extend_its_barrier pins the no-deadlock capture rule under mid-flight commits. 2. The gather is adaptive. Skip the window when the NEXT generation is already big (WAL_GATHER_SKIP_REQS=32 / WAL_GATHER_SKIP_BYTES=1MiB; 0 = never) — the window exists for a small next generation; at drift+saturation it is a pure tax (the CDG top-tier question). Finding from building the scenario: a synchronized herd at saturation produces NO drift, so the drift key already suppresses the window there; busy-skip matters exactly when drift and volume coincide, which the test constructs deterministically via the gate hold. Also fixed en route: the DST engine harness now mirrors production's flush-timer stretch when the pump is on — its 5 ms internal timer was flushing mid-PUT commits itself and silently neutering every busy-generation scenario. 3. Telemetry: pump {gathers_applied, gathers_skipped_busy, gathered_reqs, flushed_reqs/records/bytes (requests-per-WAL), ack_to_enqueue_sum_us/count}; ring {resident_bytes, peak_bytes}. 4. The benchmark consumer got the split cursors the review required: committed (advances only after a body fully decodes) vs one speculative lookahead. A body that dies mid-stream drains and DISCARDS the speculative response and re-polls from committed — accepting it would silently skip the failed response's records, an integrity bug no HTTP status surfaces. A raw-TCP fault server test scripts exactly that (truncated Content-Length + close, plus a canary record in the speculative response that must never be decoded) and asserts every record exactly once and the committed offset re-polled. recordsDecoded/bodyFailures now in the jsonl. 5. Ring ordering pinned at the reviewer's stricter boundary: publish-before-NOTIFY (a woken waiter's FIRST ring_read must hit), mid-batch reads, a producer-duplicate publishes nothing, and budget-1 oversized-record progress on ring and DB paths alike. The ring already stored encrypted wire frames and already had the engine-global budget + publish-order FIFO eviction the review asked for; resident/peak gauges added. 6. Live-read stage instrumentation (STREAMS_DEBUG_TIMING=1, bench only): woken long-poll responses carry Streams-Debug-Wait {waited, arm_us, read_us}; the consumer records both windows and the soak harvest carries their p50s — the classification data for the remaining roundtrip-minus-append interval (one WAL-ish, cause unproven). 7. Campaign hygiene (the destroyed-specimen lesson, review's exact design): deploys require SOAK_RUN_ID and stamp proj files; teardown refuses stamp mismatches and anything in preserve.txt. docs/reviews/2026-07-27-perf-diff.patch carries the exact 9449597^..be2ed44 diff the reviewer requested for line-level sign-off. 90 tests green (89 + the awsbench integrity test). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ubuntu-latestWhy
The macOS GitHub Actions runner is crashing inside Bun after
bun testcompletes, so the full validation path is more reliable on Ubuntu while retaining macOS smoke coverage.Verification