Skip to content

build: the lock test clears an inherited EIGS_TREE_LOCK_HELD (#1940) - #1970

Merged
InauguralPhysicist merged 1 commit into
mainfrom
lock-test-held-env
Oct 25, 2026
Merged

InauguralPhysicist merged 1 commit into
mainfrom
lock-test-held-env

Conversation

@InauguralPhysicist

Copy link
Copy Markdown
Collaborator

Refs #1940.

The bug: tools/make_lock_check.sh inherited EIGS_TREE_LOCK_HELD=1 when run from inside a make recipe (make precheck reaches its selftests row). Every make it started ran unlocked, and case 1 failed. CI runs the selftests directly, so it never showed there; R1.7's local precheck train found it.

The fix: the test unsets the flag at the top. Case 3 still sets it explicitly for its one make.

Measured: 8/8 with the flag unset, and now 8/8 with it inherited, where it was 0/8. Shellcheck is clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KC99CmwatKssQYggkBCgwF

The Makefile exports EIGS_TREE_LOCK_HELD=1 so that recursive makes skip the
tree lock. tools/make_lock_check.sh, run from inside a make recipe (`make
precheck` reaches its selftests row), inherited that flag. Every make the
test started then ran unlocked, and case 1 failed: "the second make ran
while the first held the tree". CI runs the selftests directly, not under
make, so this never showed there; R1.7's local precheck train found it.

The test controls the lock itself, so it unsets the flag at the top. Case 3
still sets it explicitly for the one make that needs it. Measured: 8/8 with
the flag unset, and now 8/8 with EIGS_TREE_LOCK_HELD=1 inherited, which was
0/8 before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KC99CmwatKssQYggkBCgwF
@InauguralPhysicist InauguralPhysicist added the area:lint-tooling Subsystem: lint-tooling label Oct 25, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-25T19:01:16.257033Z 7707117 PR opened
🔒 Security Review ✅ Completed 2026-10-25T19:02:33.575764Z 7707117 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@codspeed

codspeed Bot commented Oct 25, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 13 untouched benchmarks


Comparing lock-test-held-env (7707117) with main (3d8a14b)

Open in CodSpeed

@InauguralPhysicist
InauguralPhysicist added this pull request to the merge queue Oct 25, 2026
Merged via the queue into main with commit 26be878 Oct 25, 2026
33 checks passed
@InauguralPhysicist
InauguralPhysicist deleted the lock-test-held-env branch October 25, 2026 19:31
InauguralPhysicist added a commit that referenced this pull request Oct 26, 2026
Record D2 seven-probe/six-amendment boundary, D3 measured two invariants and11change rows, D4 direct constant-pool witness; all51 final MAP tier observations green. N6 shortest writer and N14/T1 sites covered by actual C/ASan/freestanding/fulltrain gates. Corpus retains full raw/comparer evidence without changing counts or normalizing differences;12 ownership/capture helpercontrols green. Cost comparison remains byte-strict by default; N6 opt-in calibrated6positive/15negativecontrols. Consumer candidate-call census16repos recorded. Final acceptance counts appended after complete train.

Continuation 3 gate maintenance: apply main PR #1970's exact comment and unset EIGS_TREE_LOCK_HELD after ROOT in tools/make_lock_check.sh. Entire script blob matches #1970: c0afa51. Train #2 under make inherited the recursive-lock bypass and failed case 1, 0/8 cases passed. The selftest now clears it; case 3 still sets it explicitly.
Requested public selftest rows in /tmp/es-r17-checkpoints, actual rc=0:
make-lock selftest: 8/8 passed
calibration: cases=54 as-expected=54 unexpected=0
All six clean-apply/tree/manifest checkpoint proofs and refreshed bundle extraction recorded in continue3-checkpoint-proof.json. The post-check amendment changes commit metadata only; tested trees are identical.
Source fingerprint: 596b197d7775d094297d85265323f5ee14b8c8df73d76287843f612fa3c97152

Final acceptance counts:
phase2-check: tier=off examined=111 rows tag_fail=111 branch_pass=111 vacuous=0 tag_timeout=0 tag_signal=0; tier=default examined=111 rows tag_fail=111 branch_pass=111 vacuous=0 tag_timeout=0 tag_signal=0; tier=osr examined=111 rows tag_fail=111 branch_pass=111 vacuous=0 tag_timeout=0 tag_signal=0; tier=trace examined=105 rows tag_fail=105 branch_pass=105 vacuous=0 tag_timeout=0 tag_signal=0; phase2-check: PASS
phase2-ci: phase2-check: PASS; phase2-lib-diff: range=[-3, 110] modules=78 importable=66 functions=889 via_reexport=95 no_params=24 calls=281423 examined=281423 unexamined=0 both_ok=124575 both_raise=156668 improved=0; phase2-lib-diff: N4 source_functions=28 exported_functions=19 calls=4631 both_ok=2500 changed_functions=11; phase2-lib-diff: listed_functions=13 undeclared=0 stale=0 PASS; phase2-ci: PASS (through=R1.7)
full-release-make-test: RESULTS: 4606/4606 passed, 0 failed, 10 skipped
extensions-suite: RESULTS: 4850/4850 passed, 0 failed, 5 skipped
lib-diff: phase2-lib-diff: range=[-3, 110] modules=78 importable=66 functions=889 via_reexport=95 no_params=24 calls=281423 examined=281423 unexamined=0 both_ok=124575 both_raise=156668 improved=0; phase2-lib-diff: N4 source_functions=28 exported_functions=19 calls=4631 both_ok=2500 changed_functions=11; phase2-lib-diff: listed_functions=13 undeclared=0 stale=0 PASS
corpus-adjudication: Corpus adjudicated: 54 differences traced to R1.7 behavior/registration; sole expected runaway timeout; no other crash/timeout.
replay-diff: replay_diff: OK (267 programs record+replay; 27 at the documented boundary; 0 nondeterministic; 1 ledgered)
jit-diff: jit_diff: OBS examined=783 denied=13; jit_diff: OK (267 programs x {jit, osr} vs the interpreter; suite-env completed=16; OBS examined=783 denied=13; 32 arms adjudicated; 2 ledgered)
cost-measure: phase2-cost: source=codspeed.yml workloads=15 tiers=2 undeclared_max=+0.3% declarations=30 stale_below_max=0.5 logs=/tmp/phase2-cost-rul4mqfr; phase2-cost: output_compare=n6-text (exact values/bits, exact integer digits, Python repr); phase2-cost: n6-text workload=tests/bench_idxset.eigs tier=jit changed_tokens=1; phase2-cost: n6-text workload=tests/bench_idxset.eigs tier=off changed_tokens=1; phase2-cost: workloads=15 rows=30 over_declared_max=0 stale_declarations=0 PASS

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KC99CmwatKssQYggkBCgwF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:lint-tooling Subsystem: lint-tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant