Repository navigation
equivalence: SYNCPOINT ROLLBACK restarts the file unit of work (Part of #5089) - #5320
Conversation
#5089) The harness marked the whole file transaction rollback-only at a rollback, so a recoverable FILE change after it (DELCUS's DELETE after INQACCCU's rollback) was lost on the Java side. IBM: the rollback ends the unit of work and the next change starts a new one. The rollback hook now restarts it (register Q3); cbsa-delcus leaves det_sweep_baseline.json. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
No description provided. |
|
PR #5320 @ a8d2e0d: 2 failed check(s) == db2 4/4 (failure) -- infra == det (failure) -- real |
|
No description provided. |
1 similar comment
|
No description provided. |
|
PR #5320 @ 48be188: 1 failed check(s) == det (failure) -- real |
#5089) The det sweep proves cbsa-delcus once the rollback restart lands (16 scenarios, 22/22 paragraphs, 13/16 branches); the ratchet wanted its ledger entry. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
CI shepherd: the head of this PR (b53ebda) is not the one a maintainer labelled |
|
No description provided. |
|
No description provided. |
Part of #5089 (the cbsa-delcus member, comment 2026-10-16; register Q3).
What
The equivalence harness's
task.onRollbackhook marked the whole file transaction rollback-only at a SYNCPOINT ROLLBACK, so a recoverable FILE change made after it (DELCUS's DELETE of CUSTOMER after INQACCCU's rollback) was lost on the Java side. IBM: the rollback ends the unit of work and the next recoverable change starts a new one, committed with the task. The hook now restarts the file transaction (Uow.restart()in the generated runner); an abend, a refusal or a failed run still marks the CURRENT unit rollback-only. Harness only: no runtime or translator change.Class table
Evidence
det_port.py run cbsa-delcus: PROVED (was indet_sweep_baseline.json, entry removed: the two-way ratchet).pr_gates --fast: 6/6.pr_gates --ratchets: 8 pass, 0 fail, 0 skipped.Sibling gaps
Rollback after a SYNCPOINT (refused, no burned program). The remaining #5089 boxes are untouched.
Lessons for agents
equivalence.py run <case>runs the model-style port and shows every scenario differing; the det sweep baseline is measured withdet_port.py run <case> --work DIR.🤖 Generated with Claude Code