Skip to content

equivalence: SYNCPOINT ROLLBACK restarts the file unit of work (Part of #5089) - #5320

Merged
squid-protocol merged 4 commits into
mainfrom
churn/5089-20261017T0902Z
Oct 17, 2026
Merged

squid-protocol merged 4 commits into
mainfrom
churn/5089-20261017T0902Z

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Part of #5089 (the cbsa-delcus member, comment 2026-10-16; register Q3).

What

The equivalence harness's task.onRollback hook 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

Member Status
FILE change after SYNCPOINT ROLLBACK (cbsa-delcus) fixed, PROVED
Abend after a rollback (backs out only the later changes) same mechanism, covered by the restart
SYNCPOINT ROLLBACK after a SYNCPOINT still refused by name (no burned program)

Evidence

  • det_port.py run cbsa-delcus: PROVED (was in det_sweep_baseline.json, entry removed: the two-way ratchet).
  • Other rollback cases re-run, all PROVED: carddemo-acctupdate, cbsa-xfrfun, cbsa-creacc, cbsa-inqacccu, cbsa-bnk1cac, genapp-lgtestp1-4, genapp-lgtestc1.
  • pr_gates --fast: 6/6. pr_gates --ratchets: 8 pass, 0 fail, 0 skipped.
  • New test pins the generated runner source (restart in the hook, current unit on the other paths).
  • No golden change expected (harness only); not blessed.

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 with det_port.py run <case> --work DIR.

🤖 Generated with Claude Code

#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>
@squid-protocol squid-protocol added the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol marked this pull request as ready for review October 17, 2026 09:19
@squid-protocol
squid-protocol enabled auto-merge (squash) October 17, 2026 09:24
@squid-protocol squid-protocol added the shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md label Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

PR #5320 @ a8d2e0d: 2 failed check(s)

== db2 4/4 (failure) -- infra
https://github.com/squid-protocol/gitgalaxy/actions/runs/39020660158/job/117361822014
repro: tests/tools/box/heavy-run.sh python tests/tools/proof_sweep.py --det-only --db2-only --cases --work /tmp/gitgalaxy-scratch/ci-digest/sweep
errors:
fail-on-cache-miss: false
Traceback (most recent call last):
equivalence_db2.Db2ImagePullError: INFRASTRUCTURE (not a code defect): could not pull the pinned Db2 image icr.io/db2_community/db2@sha256:2de8151713c261843868c5c3411b57be6ae79d99d70a5b3022337836776bfda6 after 4 attempts: docker pull -q icr
##[error]the background Db2 start did not finish
##[error]Process completed with exit code 1.
log tail:
Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
GITGALAXY_ORACLE_PREBUILT: 1
DB2_JOBS: 4
GITGALAXY_DB2_POOL: 4
JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.20-1/x64
JAVA_HOME_17_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.20-1/x64
MAVEN_ARGS: -ntp
##[endgroup]
Multiple search paths detected. Calculating the least common ancestor of all paths
The least common ancestor is /home/runner/work/_temp. This will be the root directory of the artifact
With the provided path, there will be 1 file uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: det-sweep-db2-logs-3.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 596
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is e9b5333c0abb98b3e4cde3cd681d5d984fe84e8a115fa575be5fbe8bbaa798ab
Finalizing artifact upload
Artifact det-sweep-db2-logs-3 successfully finalized. Artifact ID 12096726476
Artifact det-sweep-db2-logs-3 has been successfully uploaded! Final size is 596 bytes. Artifact ID is 12096726476
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/39020660158/artifacts/12096726476
Post job cleanup.
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/60b2ecd7-119a-44dc-a656-5a07c0f24de6' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/gitgalaxy/gitgalaxy/gitgalaxy
Removing SSH command configuration
[command]/usr/bin/git config --local --name-only --get-regexp core.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/usr/bin/git config --local --name-only --get-regexp http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http.https://github.com/.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/bin/git config --local --name-only --get-regexp ^includeIf.gitdir:
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Cleaning up orphan processes

== det (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/39020660158/job/117364554629
repro: tests/tools/box/heavy-run.sh python tests/tools/proof_sweep.py --det-only --skip-db2 --cases cbsa-bnk1ccs,cbsa-bnk1tfn,cbsa-bnk1uac,mortgage-cmort,mortgage-csmrt,mortgage-mpmt,zecs-zecs003 --work /tmp/gitgalaxy-scratch/ci-digest/sweep
det cases not proven: cbsa-bnk1ccs,cbsa-bnk1tfn,cbsa-bnk1uac,mortgage-cmort,mortgage-csmrt,mortgage-mpmt,zecs-zecs003
errors:
det mortgage-csmrt NOT PROVEN proven on 5 scenarios, covering 1/1 paragraphs and 1/2 branches
det mortgage-mpmt NOT PROVEN
det zecs-zecs003 NOT PROVEN
det cbsa-bnk1ccs NOT PROVEN proven on 83 scenarios, covering 33/33 paragraphs and 109/143 branches
det cbsa-bnk1tfn NOT PROVEN proven on 45 scenarios, covering 28/28 paragraphs and 53/72 branches
det cbsa-bnk1uac NOT PROVEN proven on 71 scenarios, covering 31/31 paragraphs and 75/88 branches
det mortgage-cmort NOT PROVEN proven on 16 scenarios, covering 6/6 paragraphs and 18/21 branches
##[error]Process completed with exit code 1.
log tail:
compression-level: 6
overwrite: false
include-hidden-files: false
archive: true
env:
pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
##[endgroup]
With the provided path, there will be 110 files uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: det-sweep-ledger.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 86724
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is c152fd2ae62ded557960e477a9a35ae07bb29da0e02f9359cc3c01e1f9b3574e
Finalizing artifact upload
Artifact det-sweep-ledger successfully finalized. Artifact ID 12095874989
Artifact det-sweep-ledger has been successfully uploaded! Final size is 86724 bytes. Artifact ID is 12095874989
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/39020660158/artifacts/12095874989
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/fa2b14b7-d47d-4b0a-9bb8-f23ea0e85caa' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/gitgalaxy/gitgalaxy
Removing SSH command configuration
[command]/usr/bin/git config --local --name-only --get-regexp core.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/usr/bin/git config --local --name-only --get-regexp http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http.https://github.com/.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/bin/git config --local --name-only --get-regexp ^includeIf.gitdir:
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Cleaning up orphan processes

@squid-protocol squid-protocol added shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md and removed shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md labels Oct 17, 2026
@squid-protocol squid-protocol added shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md shepherd:retrying Bot: an infra/flake rerun is pending on this head. Guide: docs/ci.md labels Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

1 similar comment
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol

Copy link
Copy Markdown
Owner Author

PR #5320 @ 48be188: 1 failed check(s)

== det (failure) -- real
https://github.com/squid-protocol/gitgalaxy/actions/runs/39023499377/job/117373835861
repro: tests/tools/box/heavy-run.sh python tests/tools/proof_sweep.py --det-only --skip-db2 --cases cbsa-bnk1ccs,cbsa-bnk1tfn,cbsa-bnk1uac,cbsa-crecust,mortgage-cmort,mortgage-csmrt,mortgage-mpmt,zecs-zecs003 --work /tmp/gitgalaxy-scratch/ci-digest/sweep
det cases not proven: cbsa-bnk1ccs,cbsa-bnk1tfn,cbsa-bnk1uac,cbsa-crecust,mortgage-cmort,mortgage-csmrt,mortgage-mpmt,zecs-zecs003
errors:
det mortgage-csmrt NOT PROVEN proven on 5 scenarios, covering 1/1 paragraphs and 1/2 branches
det mortgage-mpmt NOT PROVEN
det zecs-zecs003 NOT PROVEN
det cbsa-bnk1ccs NOT PROVEN proven on 83 scenarios, covering 33/33 paragraphs and 109/143 branches
det cbsa-bnk1tfn NOT PROVEN proven on 45 scenarios, covering 28/28 paragraphs and 53/72 branches
det cbsa-bnk1uac NOT PROVEN proven on 71 scenarios, covering 31/31 paragraphs and 75/88 branches
det cbsa-crecust NOT PROVEN
det mortgage-cmort NOT PROVEN proven on 16 scenarios, covering 6/6 paragraphs and 18/21 branches
##[error]Process completed with exit code 1.
log tail:
compression-level: 6
overwrite: false
include-hidden-files: false
archive: true
env:
pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64
PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig
Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib
##[endgroup]
With the provided path, there will be 110 files uploaded
Artifact name is valid!
Root directory input is valid!
Uploading artifact: det-sweep-ledger.zip
Beginning upload of artifact content to blob storage
Uploaded bytes 86738
Finished uploading artifact content to blob storage!
SHA256 digest of uploaded artifact is 23a8aade38fe3d6fb5dd968f19f924a123f68bf0edcf049fa49602622503e25f
Finalizing artifact upload
Artifact det-sweep-ledger successfully finalized. Artifact ID 12098615413
Artifact det-sweep-ledger has been successfully uploaded! Final size is 86738 bytes. Artifact ID is 12098615413
Artifact download URL: https://github.com/squid-protocol/gitgalaxy/actions/runs/39023499377/artifacts/12098615413
Post job cleanup.
[command]/usr/bin/git version
git version 2.55.0
Temporarily overriding HOME='/home/runner/work/_temp/42bdfd68-336c-4817-909e-d6274381f50b' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
[command]/usr/bin/git config --global --add safe.directory /home/runner/work/gitgalaxy/gitgalaxy
Removing SSH command configuration
[command]/usr/bin/git config --local --name-only --get-regexp core.sshCommand
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
Removing HTTP extra header
[command]/usr/bin/git config --local --name-only --get-regexp http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http.https://github.com/.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
Removing includeIf entries pointing to credentials config files
[command]/usr/bin/git config --local --name-only --get-regexp ^includeIf.gitdir:
[command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
Cleaning up orphan processes

@squid-protocol squid-protocol added the shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md label Oct 17, 2026
squid-protocol and others added 2 commits October 17, 2026 06:31
#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>
@squid-protocol squid-protocol removed the shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md label Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

CI shepherd: the head of this PR (b53ebda) is not the one a maintainer labelled shepherd:merge on (new commits, or never approved), so the label was removed and nothing merges unreviewed code. Re-add the label when the new head is ready (shepherd:reapprove marks this PR until then).

@squid-protocol squid-protocol added shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md and removed shepherd:needs-fix Bot: a real failure on this head; see the digest comment. Guide: docs/ci.md shepherd:reapprove Bot: new commits dropped shepherd:merge; re-add it to merge this head. Guide: docs/ci.md labels Oct 17, 2026
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol enabled auto-merge (squash) October 17, 2026 10:35
@squid-protocol

Copy link
Copy Markdown
Owner Author

No description provided.

@squid-protocol
squid-protocol merged commit 7c56c46 into main Oct 17, 2026
41 checks passed
@squid-protocol
squid-protocol deleted the churn/5089-20261017T0902Z branch October 17, 2026 10:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

shepherd:merge Maintainer: merge when green (auto-merge, squash). Guide: docs/ci.md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant