Skip to content

chore(bb): refresh pinned Chonk IVC inputs to fix nightly debug build --ci-refresh-chonk#23924

Open
AztecBot wants to merge 2 commits into
nextfrom
cb/refresh-chonk-nightly-jun7
Open

chore(bb): refresh pinned Chonk IVC inputs to fix nightly debug build --ci-refresh-chonk#23924
AztecBot wants to merge 2 commits into
nextfrom
cb/refresh-chonk-nightly-jun7

Conversation

@AztecBot

@AztecBot AztecBot commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator

What

Refreshes the pinned Chonk IVC inputs (barretenberg/cpp/scripts/chonk-inputs.hash) so the Nightly Debug Build goes green again.

This PR carries the ci-refresh-chonk label and a --ci-refresh-chonk head-commit marker. PR CI's post-action (ci_update_chonk_inputs.sh) regenerates the pinned inputs, uploads the new tarball to S3, verifies the smallest flow through ChonkPinnedIvcInputsTest.AllPinnedFlows, and pushes a follow-up commit replacing the placeholder hash in this PR with the freshly-pinned value. Do not merge until that follow-up commit lands — the hash here is a 0000… placeholder until then.

Supersedes the earlier closed-unmerged refresh attempt #23744; the pin is still at the 2026-05-21 value (209dde8e69a27c9f), so the nightly has stayed red.

Root cause

Nightly debug build run 27085031299 failed in:

FAILED: barretenberg/cpp/scripts/run_test.sh bbapi_tests ChonkPinnedIvcInputsTest.AllPinnedFlows (code: 1)

The failure is on circuit 10/10 (hiding_kernel) of the deploy_ecdsar1+sponsored_fpc pinned flow:

Pub inputs offset mismatch: 669 vs 673
Commitment mismatch: Q_M, Q_C, Q_L, Q_R, Q_O, Q_4, Q_5, Q_ARITH, Q_SORT, ...
C++ exception: Assertion failed: (kernel_return_data_match)
  Reason: kernel_return_data mismatch: proof contains
          { 0x183227397098d014..., 0x0 } but kernel_calldata commitment is { 0x..01, 0x..02 }

The hiding_kernel circuit's public-input layout changed (offset 669 → 673, plus selector-commitment changes), so the precomputed VK and proof baked into the pinned ivc-inputs.msgpack are stale. The reconstructed kernel_return_data from the stale public inputs reads a sentinel {1, 2} (the BN254 generator, i.e. an empty databus column) instead of the real return-data commitment, tripping the consistency check.

That check is BB_ASSERT_DEBUG(kernel_return_data_match, ...) at barretenberg/cpp/src/barretenberg/chonk/chonk.cpp:169 — a debug-only assertion compiled out of release/PR CI. Only the nightly debug build exercises it, which is why the stale pin slips past merge-queue CI.

The pin was last bumped 2026-05-21. Circuit-affecting barretenberg changes have since landed on next without ci-refresh-chonk, most notably:

Fix

Regenerate and re-pin the Chonk inputs via the standard ci-refresh-chonk flow (this PR). No source changes are needed — the pinned fixtures just need to track the current circuits.

Follow-up (separate)

Because the assertion is debug-only, circuit changes can stale the pin with no PR-CI signal, and refresh PRs have repeatedly been opened and closed without landing. Worth deciding whether chonk_inputs.sh check should exercise the pinned-flow IVC with debug asserts at PR time (or whether the nightly should hard-block), so this is caught before it reaches the nightly. Tracking separately.


Created by claudebox · group: slackbot

@AztecBot AztecBot added ci-draft Run CI on draft PRs. ci-refresh-chonk claudebox Owned by claudebox. it can push to this PR. and removed ci-refresh-chonk labels Jun 7, 2026
@AztecBot

AztecBot commented Jun 7, 2026

Copy link
Copy Markdown
Collaborator Author

Pinned Chonk inputs refreshed to a47acea877d449f2. The update commit includes a head-commit --ci-skip marker so the automatic follow-up run does not repeat CI.

@iakovenkos iakovenkos marked this pull request as ready for review June 8, 2026 08:17
@iakovenkos iakovenkos added ci-squash-and-merge and removed ci-draft Run CI on draft PRs. labels Jun 8, 2026
… --ci-refresh-chonk

## What

Refreshes the pinned Chonk IVC inputs (`barretenberg/cpp/scripts/chonk-inputs.hash`) so the **Nightly Debug Build** goes green again.

This PR carries the `ci-refresh-chonk` label **and** a `--ci-refresh-chonk` head-commit marker. PR CI's post-action (`ci_update_chonk_inputs.sh`) regenerates the pinned inputs, uploads the new tarball to S3, verifies the smallest flow through `ChonkPinnedIvcInputsTest.AllPinnedFlows`, and pushes a follow-up commit replacing the placeholder hash in this PR with the freshly-pinned value. **Do not merge until that follow-up commit lands** — the hash here is a `0000…` placeholder until then.

Supersedes the earlier closed-unmerged refresh attempt #23744; the pin is still at the 2026-05-21 value (`209dde8e69a27c9f`), so the nightly has stayed red.

## Root cause

Nightly debug build run [27085031299](https://github.com/AztecProtocol/aztec-packages/actions/runs/27085031299) failed in:

```
FAILED: barretenberg/cpp/scripts/run_test.sh bbapi_tests ChonkPinnedIvcInputsTest.AllPinnedFlows (code: 1)
```

The failure is on circuit 10/10 (`hiding_kernel`) of the `deploy_ecdsar1+sponsored_fpc` pinned flow:

```
Pub inputs offset mismatch: 669 vs 673
Commitment mismatch: Q_M, Q_C, Q_L, Q_R, Q_O, Q_4, Q_5, Q_ARITH, Q_SORT, ...
C++ exception: Assertion failed: (kernel_return_data_match)
  Reason: kernel_return_data mismatch: proof contains
          { 0x183227397098d014..., 0x0 } but kernel_calldata commitment is { 0x..01, 0x..02 }
```

The `hiding_kernel` circuit's public-input layout changed (offset 669 → 673, plus selector-commitment changes), so the **precomputed VK and proof baked into the pinned `ivc-inputs.msgpack` are stale**. The reconstructed `kernel_return_data` from the stale public inputs reads a sentinel `{1, 2}` (the BN254 generator, i.e. an empty databus column) instead of the real return-data commitment, tripping the consistency check.

That check is `BB_ASSERT_DEBUG(kernel_return_data_match, ...)` at `barretenberg/cpp/src/barretenberg/chonk/chonk.cpp:169` — a **debug-only** assertion compiled out of release/PR CI. Only the nightly *debug* build exercises it, which is why the stale pin slips past merge-queue CI.

The pin was last bumped 2026-05-21. Circuit-affecting barretenberg changes have since landed on `next` without `ci-refresh-chonk`, most notably:

- #23484 *fix: harden batch chonk verifier* — adds an independent batched-SRS MSM check in `IPA::batch_reduce_verify` (`commitment_schemes/ipa/ipa.hpp`); the IPA verifier lives inside the hiding kernel, which accounts for the new public inputs and changed selector commitments.
- #23615 *feat: optimize sumcheck in ECCVM and Translator*.

## Fix

Regenerate and re-pin the Chonk inputs via the standard `ci-refresh-chonk` flow (this PR). No source changes are needed — the pinned fixtures just need to track the current circuits.

## Follow-up (separate)

Because the assertion is debug-only, circuit changes can stale the pin with no PR-CI signal, and refresh PRs have repeatedly been opened and closed without landing. Worth deciding whether `chonk_inputs.sh check` should exercise the pinned-flow IVC with debug asserts at PR time (or whether the nightly should hard-block), so this is caught before it reaches the nightly. Tracking separately.

---
*Created by [claudebox](https://claudebox.work/v2/sessions/1bec730eb3623e82) · group: `slackbot`*
@AztecBot AztecBot force-pushed the cb/refresh-chonk-nightly-jun7 branch from 30b93a1 to 5423cc3 Compare June 8, 2026 08:26
@AztecBot AztecBot enabled auto-merge June 8, 2026 08:26
Generated by ci-refresh-chonk.

Only the pinned Chonk input hash is committed here; the immediate follow-up CI run is skipped intentionally.

--ci-skip
@AztecBot

AztecBot commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator Author

Pinned Chonk inputs refreshed to e2dbfa3f4092e24f. The update commit includes a head-commit --ci-skip marker so the automatic follow-up run does not repeat CI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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