fix: BB_DISABLE_ASSERTS in HonkRecursionConstraintTestWithoutPredicate.GenerateVKFromConstraints#22811
Draft
fix: BB_DISABLE_ASSERTS in HonkRecursionConstraintTestWithoutPredicate.GenerateVKFromConstraints#22811
Conversation
…e.GenerateVKFromConstraints
75a1125 to
a0f603a
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.
Summary
Unblock the nightly
barretenberg-debugbuild, which has been red every nightsince 2026-04-22. The job aborts in
dsl_tests HonkRecursionConstraintTestWithoutPredicate/1.GenerateVKFromConstraints(UltraZK) with:
in
SharedShiftedVirtualZeroesArray::getduring the first sumcheck proverround.
Root cause
OinkProver::commit_to_masking_polyallocatesgemini_masking_polywithvirtual_size = polynomials.max_end_index(), which is4135(odd) for thiscircuit.
SumcheckProverRound::compute_effective_round_sizerounds the roundsize up to the next even, so
extend_edgesreadsgemini_masking_poly[edge_idx + 1]atindex == virtual_size. That hits thedebug-only
BB_ASSERT_DEBUG. In release the sameget()falls through to thereturn zerobranch (index == end_), the read is well-defined, and proofsare unaffected; only the debug nightly catches it.
Introduced by #22334 (
chore!: masking at the top of the trace).Fix
Apply the same surgical
BB_DISABLE_ASSERTS()workaround already used for thesibling test
HonkRecursionConstraintTestWithPredicate.GenerateVKFromConstraints(PR #21542). Debug-only, scoped to the test entry — production proving paths
keep the assert live.
The proper fix (rounding
virtual_sizeup to even in the polynomial allocator)is being pursued separately on draft PRs #22793 / #22789 / #22754. None have
landed in 6+ days; this workaround unblocks the nightly while that work
continues.
Verification
Local
debugpreset (-D_GLIBCXX_DEBUG, clang-20):PR-branch CI3 passing on this fix:
https://github.com/AztecProtocol/aztec-packages/actions/runs/25037005543
Recurring failures
Nightly debug build failed again every day since this PR was opened — same
assertion, same test, same root cause. This PR is ready to merge but still
sits in draft state.
ClaudeBox investigation logs:
Full analysis: https://gist.github.com/AztecBot/7dd9c1d252717940c52a377e70ef1e74
@ludamad / honk-team — please mark this ready for review and merge so the
nightly stops paging us until the proper fix in #22793 lands.