-
Notifications
You must be signed in to change notification settings - Fork 210
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
I was re-executing already existing transactions on the Starknet testnet and noticed that cairo-vm panics while executing some of those transactions.
Panics here because in debug builds overflow during u32 arithmetic operations panics: https://github.com/lambdaclass/cairo-rs/blob/ae87c315396e7456fb847f9f739254c4801101d2/src/hint_processor/builtin_hint_processor/secp/ec_utils.rs#L515
The full panic message:
thread '<unnamed>' panicked at 'attempt to subtract with overflow', /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/hint_processor/builtin_hint_processor/secp/ec_utils.rs:515:38
stack backtrace:
0: rust_begin_unwind
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/std/src/panicking.rs:578:5
1: core::panicking::panic_fmt
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/panicking.rs:67:14
2: core::panicking::panic
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/panicking.rs:117:5
3: cairo_vm::hint_processor::builtin_hint_processor::secp::ec_utils::n_pair_bits::{{closure}}
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/hint_processor/builtin_hint_processor/secp/ec_utils.rs:515:38
4: core::iter::adapters::map::map_fold::{{closure}}
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/iter/adapters/map.rs:84:28
5: core::iter::traits::iterator::Iterator::fold
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/iter/traits/iterator.rs:2482:21
6: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/iter/adapters/map.rs:124:9
7: cairo_vm::hint_processor::builtin_hint_processor::secp::ec_utils::n_pair_bits
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/hint_processor/builtin_hint_processor/secp/ec_utils.rs:513:24
8: cairo_vm::hint_processor::builtin_hint_processor::secp::ec_utils::quad_bit
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/hint_processor/builtin_hint_processor/secp/ec_utils.rs:467:5
9: <cairo_vm::hint_processor::builtin_hint_processor::builtin_hint_processor_definition::BuiltinHintProcessor as cairo_vm::hint_processor::hint_processor_definition::HintProcessor>::execute_hint
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/hint_processor/builtin_hint_processor/builtin_hint_processor_definition.rs:763:36
10: starknet_rs::core::syscalls::deprecated_syscall_handler::DeprecatedSyscallHintProcessor<T>::should_run_syscall_hint
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/core/syscalls/deprecated_syscall_handler.rs:44:15
11: <starknet_rs::core::syscalls::deprecated_syscall_handler::DeprecatedSyscallHintProcessor<T> as cairo_vm::hint_processor::hint_processor_definition::HintProcessor>::execute_hint
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/core/syscalls/deprecated_syscall_handler.rs:150:12
12: cairo_vm::vm::vm_core::VirtualMachine::step_hint
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/vm/vm_core.rs:433:17
13: cairo_vm::vm::vm_core::VirtualMachine::step
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/vm/vm_core.rs:469:9
14: cairo_vm::vm::runners::cairo_runner::CairoRunner::run_until_pc
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/vm/runners/cairo_runner.rs:533:13
15: cairo_vm::vm::runners::cairo_runner::CairoRunner::run_from_entrypoint
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/vm/runners/cairo_runner.rs:940:9
16: starknet_rs::starknet_runner::runner::StarknetRunner<H>::run_from_entrypoint
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/starknet_runner/runner.rs:82:9
17: starknet_rs::business_logic::execution::execution_entry_point::ExecutionEntryPoint::_execute_version0_class
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/business_logic/execution/execution_entry_point.rs:314:9
18: starknet_rs::business_logic::execution::execution_entry_point::ExecutionEntryPoint::execute
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/business_logic/execution/execution_entry_point.rs:103:58
19: starknet_rs::core::syscalls::deprecated_business_logic_syscall_handler::DeprecatedBLSyscallHandler<T>::syscall_call_contract
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/core/syscalls/deprecated_business_logic_syscall_handler.rs:428:9
20: starknet_rs::core::syscalls::deprecated_business_logic_syscall_handler::DeprecatedBLSyscallHandler<T>::call_contract_and_write_response
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/core/syscalls/deprecated_business_logic_syscall_handler.rs:591:23
21: starknet_rs::core::syscalls::deprecated_business_logic_syscall_handler::DeprecatedBLSyscallHandler<T>::library_call
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/core/syscalls/deprecated_business_logic_syscall_handler.rs:726:9
22: starknet_rs::core::syscalls::deprecated_syscall_handler::DeprecatedSyscallHintProcessor<T>::execute_syscall_hint
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/core/syscalls/deprecated_syscall_handler.rs:94:17
23: <starknet_rs::core::syscalls::deprecated_syscall_handler::DeprecatedSyscallHintProcessor<T> as cairo_vm::hint_processor::hint_processor_definition::HintProcessor>::execute_hint
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/core/syscalls/deprecated_syscall_handler.rs:151:13
24: cairo_vm::vm::vm_core::VirtualMachine::step_hint
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/vm/vm_core.rs:433:17
25: cairo_vm::vm::vm_core::VirtualMachine::step
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/vm/vm_core.rs:469:9
26: cairo_vm::vm::runners::cairo_runner::CairoRunner::run_until_pc
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/vm/runners/cairo_runner.rs:533:13
27: cairo_vm::vm::runners::cairo_runner::CairoRunner::run_from_entrypoint
at /home/hidden/.cargo/git/checkouts/cairo-rs-550f844fbb3def24/de6a232/src/vm/runners/cairo_runner.rs:940:9
28: starknet_rs::starknet_runner::runner::StarknetRunner<H>::run_from_entrypoint
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/starknet_runner/runner.rs:82:9
29: starknet_rs::business_logic::execution::execution_entry_point::ExecutionEntryPoint::_execute_version0_class
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/business_logic/execution/execution_entry_point.rs:314:9
30: starknet_rs::business_logic::execution::execution_entry_point::ExecutionEntryPoint::execute
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/business_logic/execution/execution_entry_point.rs:103:58
31: starknet_rs::business_logic::transaction::objects::internal_invoke_function::InternalInvokeFunction::run_validate_entrypoint
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/business_logic/transaction/objects/internal_invoke_function.rs:138:25
32: starknet_rs::business_logic::transaction::objects::internal_invoke_function::InternalInvokeFunction::apply
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/business_logic/transaction/objects/internal_invoke_function.rs:200:13
33: starknet_rs::business_logic::transaction::objects::internal_invoke_function::InternalInvokeFunction::execute
at /home/hidden/Source/github.com/lambdaclass/starknet-in-rust/src/business_logic/transaction/objects/internal_invoke_function.rs:264:36
34: pathfinder_rpc::cairo::starknet_rs::Transaction::execute
at ./crates/rpc/src/cairo/starknet_rs.rs:279:40
35: pathfinder_rpc::cairo::starknet_rs::estimate_fee_impl
at ./crates/rpc/src/cairo/starknet_rs.rs:238:23
36: pathfinder_rpc::cairo::starknet_rs::estimate_fee_for_gateway_transactions
at ./crates/rpc/src/cairo/starknet_rs.rs:198:18
37: re_execute::execute
at ./crates/pathfinder/examples/re_execute.rs:122:15
38: re_execute::main::{{closure}}::{{closure}}
at ./crates/pathfinder/examples/re_execute.rs:53:40
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.```
**To Reproduce**
I don't yet have a standalone tool for reproduction. Right now you need the `re_execute` [tool](https://github.com/eqlabs/pathfinder/blob/krisztian/re-execute/crates/pathfinder/examples/re_execute.rs) from pathfinder for easy reproduction.
**Expected behavior**
cairo-vm should not panic.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
Done