Skip to content

fix: disable debug field assertions in TranslatorRelationFailureTests#22680

Closed
AztecBot wants to merge 1 commit into
nextfrom
claudebox/fix-nightly-bb-debug-build
Closed

fix: disable debug field assertions in TranslatorRelationFailureTests#22680
AztecBot wants to merge 1 commit into
nextfrom
claudebox/fix-nightly-bb-debug-build

Conversation

@AztecBot
Copy link
Copy Markdown
Collaborator

@AztecBot AztecBot commented Apr 21, 2026

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 called std::abort(). Build phase passes (confirmed locally at 848af53a); 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 suite TranslatorRelationFailureTests in barretenberg/cpp/src/barretenberg/translator_vm/relation_failure.test.cpp that 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 the debug preset, 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 before RelationChecker::check can report the expected failure.

This is the exact pattern of #21881 (HighDegreeAttackAccept / HighDegreeAttackReject in shplemini.test.cpp, fixed with BB_DISABLE_ASSERTS()) and #21542 (multiple debug-mode test fixes).

Fix

Adds a fixture-scoped bb::AssertGuard(AssertMode::WARN) member to the TranslatorRelationFailureTests fixture. 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_form is a no-op under NDEBUG. The EXPECT_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 848af53a under the debug preset 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 the debug preset 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

  • Nightly debug build (cron 0 5 * * *) passes on the commit after merge.
  • Manually trigger Nightly Debug Build workflow via workflow_dispatch on the merged commit to get fast feedback before the next scheduled run.

@AztecBot AztecBot added ci-draft Run CI on draft PRs. claudebox Owned by claudebox. it can push to this PR. labels Apr 21, 2026
AztecBot added a commit that referenced this pull request Apr 22, 2026
@AztecBot AztecBot force-pushed the claudebox/fix-nightly-bb-debug-build branch from 981145f to d3d5e59 Compare April 22, 2026 05:46
@AztecBot AztecBot force-pushed the claudebox/fix-nightly-bb-debug-build branch from d3d5e59 to a8c15f7 Compare April 24, 2026 06:19
@AztecBot AztecBot changed the title fix: wrap PairingPoints debug native check in try-catch fix: disable debug field assertions in TranslatorRelationFailureTests Apr 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-draft Run CI on draft PRs. claudebox Owned by claudebox. it can push to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants