Skip to content

feat: Resolve callstacks in protocol circuit errors on wasm#12573

Merged
sirasistant merged 3 commits intomasterfrom
arv/resolve_callstacks_in_protocol_circuits
Mar 10, 2025
Merged

feat: Resolve callstacks in protocol circuit errors on wasm#12573
sirasistant merged 3 commits intomasterfrom
arv/resolve_callstacks_in_protocol_circuits

Conversation

@sirasistant
Copy link
Contributor

If you face an error in a protocol circuit, you can bootstrap with DEBUG=1 and the noir call stack should be resolved now:

[14:50:16.470] ERROR: pxe:service Error: Error: Circuit execution failed: push out of bounds
    at Object.<anonymous>.module.exports.__wbg_constructor_c456dcccc52847dd (/mnt/user-data/alvaro/aztec-packages-2/noir/packages/acvm_js/nodejs/acvm_js.js:563:17)
    at __wbg_constructor_c456dcccc52847dd externref shim (wasm://wasm/acvm_js.wasm-0094b602:1:1581928)
    at acvm_js::js_execution_error::JsExecutionError::new::h93c0d36e943058c5 (wasm://wasm/acvm_js.wasm-0094b602:1:1194110)
    at acvm_js::execute::ProgramExecutor<B>::execute_circuit::{{closure}}::he0b31dde1fab7349 (wasm://wasm/acvm_js.wasm-0094b602:1:428587)
    at acvm_js::execute::execute_program_with_native_program_and_return::{{closure}}::h907e9f3645570aaa (wasm://wasm/acvm_js.wasm-0094b602:1:1064646)
    at acvm_js::execute::execute_program_with_native_type_return::{{closure}}::hda8478769597cad2 (wasm://wasm/acvm_js.wasm-0094b602:1:1142954)
    at wasm_bindgen_futures::future_to_promise::{{closure}}::{{closure}}::hb42baa03d2f91f89 (wasm://wasm/acvm_js.wasm-0094b602:1:995186)
    at wasm_bindgen_futures::queue::Queue::new::{{closure}}::he554c69357740b54 (wasm://wasm/acvm_js.wasm-0094b602:1:1288461)
    at <dyn core::ops::function::FnMut<(A,)>+Output = R as wasm_bindgen::closure::WasmClosure>::describe::invoke::h01c6856463f9cac8 (wasm://wasm/acvm_js.wasm-0094b602:1:1580227)
    at closure265 externref shim (wasm://wasm/acvm_js.wasm-0094b602:1:1583586)
    at __wbg_adapter_30 (/mnt/user-data/alvaro/aztec-packages-2/noir/packages/acvm_js/nodejs/acvm_js.js:531:10)
    at real (/mnt/user-data/alvaro/aztec-packages-2/noir/packages/acvm_js/nodejs/acvm_js.js:125:20)
    at node:internal/process/task_queues:140:7
    at AsyncResource.runInAsyncScope (node:async_hooks:203:9)
    at AsyncResource.runMicrotask (node:internal/process/task_queues:137:8) {
  callStack: [ '0.2691', '0.18971', '0.20148' ],
  rawAssertionPayload: { selector: '5727012404371710682', data: [] },
  brilligFunctionId: 0,
  noirCallStack: [
    'at private_inputs.execute (/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/private-kernel-inner-simulated/src/main.nr:19:5)',
    'at self.generate_output (/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_inner.nr:58:31)',
    'at PrivateKernelCircuitPublicInputsComposer::new_from_previous_kernel(\n' +
      '            self.previous_kernel.public_inputs,\n' +
      '        )\n' +
      '            .pop_top_call_request()\n' +
      '            .with_private_call (/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/private_kernel_inner.nr:42:9)',
    'at self.propagate_from_private_call (/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/components/private_kernel_circuit_public_inputs_composer.nr:129:9)',
    'at self.propagate_logs (/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/components/private_kernel_circuit_public_inputs_composer.nr:159:9)',
    'at self.public_inputs.end.private_logs.push (/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/private-kernel-lib/src/components/private_kernel_circuit_public_inputs_composer.nr:299:17)',
    'at self.len < MaxLen (std/collections/bounded_vec.nr:187:16)'
  ]
}

@sirasistant sirasistant requested a review from Thunkar March 7, 2025 14:52
Copy link
Contributor

@Thunkar Thunkar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@sirasistant sirasistant merged commit 657299b into master Mar 10, 2025
6 checks passed
@sirasistant sirasistant deleted the arv/resolve_callstacks_in_protocol_circuits branch March 10, 2025 12:27
sklppy88 pushed a commit that referenced this pull request Mar 11, 2025
🤖 I have created a new Aztec Packages release
---


##
[0.79.0](v0.78.1...v0.79.0)
(2025-03-11)


### ⚠ BREAKING CHANGES

* aggregate data for batch calls
([#12562](#12562))

### Features

* add extra attributes to target_info
([#12583](#12583))
([c296422](c296422))
* add optional oracle resolver url in `acvm_cli`
(noir-lang/noir#7630)
([cc6cdbb](cc6cdbb))
* allow to pay via sponsored fpc from cli
([#12598](#12598))
([877de5c](877de5c))
* array concat method (noir-lang/noir#7199)
([cc6cdbb](cc6cdbb))
* **avm:** ToRadix gadget
([#12528](#12528))
([02a7171](02a7171))
* aztec-up -v flag
([#12590](#12590))
([6a41565](6a41565))
* **bb:** consider polynomial end_index when constructing partially
evaluated multivariates
([#12530](#12530))
([abd22cd](abd22cd))
* **config:** add fallbacks
([#12593](#12593))
([f2f9ef3](f2f9ef3))
* **p2p:** add trusted peers mechanics
([#12447](#12447))
([d67f7e8](d67f7e8))
* **p2p:** peer manager peer count metrics
([#12575](#12575))
([b4891c1](b4891c1))
* provision alerts
([#12561](#12561))
([2ea1767](2ea1767))
* Resolve callstacks in protocol circuit errors on wasm
([#12573](#12573))
([657299b](657299b))


### Bug Fixes

* aggregate data for batch calls
([#12562](#12562))
([bd0b3b6](bd0b3b6))
* broken kind transfer test
([#12611](#12611))
([6e91934](6e91934))
* Cl/release fixes 2
([#12595](#12595))
([fc597f4](fc597f4))
* Cl/release noir refs
([#12597](#12597))
([fdcfcaf](fdcfcaf))
* demote log
([#12626](#12626))
([bec8953](bec8953))
* deploy method test
([#12609](#12609))
([f2c06c2](f2c06c2))
* Do not report epoch as complete until blocks have synced
([#12638](#12638))
([2ddfa76](2ddfa76)),
closes
[#12625](#12625)
* Error on infinitely recursive types
(noir-lang/noir#7579)
([cc6cdbb](cc6cdbb))
* get L1 tx utils config from env
([#12620](#12620))
([d930c01](d930c01))
* Log overflow handling in reset
([#12579](#12579))
([283b624](283b624))
* metrics update
([#12571](#12571))
([80a5df2](80a5df2))
* **sandbox:** query release please manifest for version if in a docker
container
([#12591](#12591))
([db8ebc6](db8ebc6))
* **spartan:** setup needs kubectl
([#12580](#12580))
([753cb33](753cb33))
* update dead partial notes link
([#12629](#12629))
([5a1dc4c](5a1dc4c))
* update error message to display 128 bits as valid bit size
(noir-lang/noir#7626)
([cc6cdbb](cc6cdbb))
* update fallback transport
([#12470](#12470))
([88f0711](88f0711))


### Miscellaneous

* bump external pinned commits
(noir-lang/noir#7640)
([cc6cdbb](cc6cdbb))
* **ci3:** add helper for uncached test introspection
([#12618](#12618))
([9ac518b](9ac518b))
* **ci3:** better memsuspend_limit comment
([#12622](#12622))
([de84187](de84187))
* clean up upgrade test and other small things
([#12558](#12558))
([c28abe1](c28abe1))
* cleanup eth artifacts + misc aztec.js reorg
([#12563](#12563))
([6623244](6623244))
* **docs:** Updated accounts page
([#12019](#12019))
([d45dac9](d45dac9))
* Fix mac build
([#12610](#12610))
([adceed6](adceed6))
* gemini soundness regression test
([#12570](#12570))
([c654106](c654106))
* more sane e2e_prover/full timeout
([#12619](#12619))
([add9d35](add9d35))
* reactivate acir_test for `regression_5045`
([#12548](#12548))
([c89f89c](c89f89c))
* remove unnecessary trait bounds
(noir-lang/noir#7635)
([cc6cdbb](cc6cdbb))
* Rename `StructDefinition` to `TypeDefinition`
(noir-lang/noir#7614)
([cc6cdbb](cc6cdbb))
* replace relative paths to noir-protocol-circuits
([4f7f5c3](4f7f5c3))
* replace relative paths to noir-protocol-circuits
([0f68d11](0f68d11))
* replace relative paths to noir-protocol-circuits
([8f593ce](8f593ce))
* replace relative paths to noir-protocol-circuits
([251ae38](251ae38))
* rollup library cleanup
([#12621](#12621))
([361fc59](361fc59))
* **sandbox:** drop cheat-codes log level
([#12586](#12586))
([24f04c7](24f04c7))
* **sandbox:** expose anvil port
([#12599](#12599))
([955f1b0](955f1b0))
* **testnet:** updating script for ignition, change naming
([#12566](#12566))
([2d7b69d](2d7b69d))
* turn on masking in eccvm
([#12467](#12467))
([aacb91a](aacb91a))
* Update Bb line counting script
([#12350](#12350))
([7a41843](7a41843))
* update docs to reflect u128 type
(noir-lang/noir#7623)
([cc6cdbb](cc6cdbb))
* Validate blobs posted to sink belong to our L2
([#12587](#12587))
([9578f1e](9578f1e)),
closes
[#12497](#12497)


### Documentation

* update cli-wallet commands in profiler doc
([#12568](#12568))
([239a4fb](239a4fb))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants