fix: disable debug field assertions in TranslatorRelationFailureTests#22680
Closed
AztecBot wants to merge 1 commit into
Closed
fix: disable debug field assertions in TranslatorRelationFailureTests#22680AztecBot wants to merge 1 commit into
AztecBot wants to merge 1 commit into
Conversation
981145f to
d3d5e59
Compare
d3d5e59 to
a8c15f7
Compare
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.
Fixes the nightly barretenberg debug build failure that has been recurring since 2026-04-22 (runs #64, #65, #66). The branch was reused for an earlier PairingPoints try-catch attempt (#22040, #22518, #22651) — the diff in this PR is the new fix targeted at the latest recurrence.
Signal
GitHub check annotation on run #65:
Process completed with exit code 134. 134 = 128 + 6 = SIGABRT — an assertion fired and calledstd::abort(). Build phase passes (confirmed locally at848af53a); the crash happens during the test phase.Suspected cause
The masking-at-top-of-trace refactor (#22334,
7dbe0b25c8, 2026-04-21) is the only substantive barretenberg/cpp change between the last passing nightly (run #63) and the first failing one (run #64). It added a new ~18-test suiteTranslatorRelationFailureTestsinbarretenberg/cpp/src/barretenberg/translator_vm/relation_failure.test.cppthat intentionally corrupts witness polynomials (negative deltas, oversized sorted values, mid-chain tampering, etc.) and then evaluates relation polynomials over those values.Field ops are
noexcept. Under thedebugpreset,assert_coarse_form()checks that every intermediate field element is in[0, 2p); corrupted witnesses can produce intermediate values that violate this invariant and abort the test process beforeRelationChecker::checkcan report the expected failure.This is the exact pattern of #21881 (
HighDegreeAttackAccept/HighDegreeAttackRejectinshplemini.test.cpp, fixed withBB_DISABLE_ASSERTS()) and #21542 (multiple debug-mode test fixes).Fix
Adds a fixture-scoped
bb::AssertGuard(AssertMode::WARN)member to theTranslatorRelationFailureTestsfixture. Every test in the suite runs with debug field assertions downgraded to warnings for its lifetime. No behavior change for release/production builds —assert_coarse_formis a no-op underNDEBUG. TheEXPECT_FALSE(failures.empty())expectations in each test still validate that corruption is detected by the relation check itself.Caveats
This is a targeted prophylactic fix based on pattern-matching to the historical nightly debug flakes. The failing CI job log is not available without repo admin rights (GitHub Actions logs endpoint returns 403), and ~25 test binaries run locally at
848af53aunder thedebugpreset did not crash in the attempts I made — but the prior HighDegreeAttack flake was ~25% per-run, and the new Translator failure tests are structurally the same kind of adversarial-witness test that historically produced this pattern.If the next nightly still fails after this merges, the follow-up is to pull the actual GitHub Actions job archive (needs repo admin) or run
translator_vm_tests+ other suspected suites in a loop under thedebugpreset until the crash surfaces. The previous PairingPoints-try-catch hypothesis remains available at https://gist.github.com/AztecBot/5ff63e371ad2495480a9418065037004 if this doesn't land the fix.Full analysis: https://gist.github.com/AztecBot/ebbffe1c0a3ea4e3b38def5a62b0fdac
Test plan
0 5 * * *) passes on the commit after merge.Nightly Debug Buildworkflow viaworkflow_dispatchon the merged commit to get fast feedback before the next scheduled run.