fix(ci): affected.t27 closure() stops reading set bytes it never wrote (Closes #6663) - #6665
Merged
Merged
Conversation
Closes #6663) After set_add() overflowed (sn = scap + 1), the graph loop went on calling in_set(set, sn, ...), which read set[sn_old..sn]: bytes the test passed in as undefined. The JIT and zig happened to answer RUN_ALL anyway; t27b's interpreter faulted on the read, the lab's one JIT/interpreter mismatch (run 099ac22, Refs #6063). The loop now stops once the set has overflowed. gen/c/ci/affected.c is t27c gen-c output from the t27b lab's master t27c (sha256 a7730025...; master's spec regenerates byte-for-byte). Lab: t27b test --check 13 passed, 0 mismatches; t27c test-report 13/13. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
This was referenced Oct 6, 2026
Contributor
PR DashboardGenerated at: 2026-10-06 06:36:54 UTC
Summary
Seal Status
|
This was referenced Oct 6, 2026
Merged
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.
Closes #6663
Refs #6063
The t27b lab's one JIT/interpreter mismatch (master 099ac22,
specs/ci/affected.t27, testnegative_control_a_set_or_output_that_does_not_fit_runs_everything) comes from a spec bug. #6663 has the full trace and a 15-line repro.set_add()overflows (sn = scap + 1),closure()'s graph loop keeps callingin_set(set, sn, ...). That call readsset[12..21], and the test never wrote those bytes (var set : [256]u8 = undefined). The JIT and zig read garbage and still answer RUN_ALL. t27b's interpreter faults on the read.while (s < c and sn <= scap). The function returns the same answer for every input; it just no longer reads those bytes.Files:
specs/ci/affected.t27: .t27, one condition and a two-line comment.gen/c/ci/affected.c: t27c gen-c output from the t27b lab's master t27c (099ac22), sha256a7730025.... One line changes. The master spec regenerates byte-for-byte to the committed file.docs/now/2026-10-06-affected-undefined-read.md: prose.Checked on the t27b lab, master binaries:
t27b test --checkt27c test-report(reference)This PR does not touch the ledger. Once the lab has run a master that includes this PR,
affected.t27becomes an honest pass and goes into the next bless.🤖 Generated with Claude Code