Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: By Default Omit Stack Traces for Panics #35

Open
1 task done
0xNeshi opened this issue Feb 6, 2025 · 0 comments
Open
1 task done

[Feature]: By Default Omit Stack Traces for Panics #35

0xNeshi opened this issue Feb 6, 2025 · 0 comments
Labels
enhancement New feature or request

Comments

@0xNeshi
Copy link
Collaborator

0xNeshi commented Feb 6, 2025

What is the feature you would like to see?

Prompted by #31 (comment)

In the linked discussion, an example in question has a test that's set up with a call chain EOA -> Contract A -> Contract B, where each call includes a value, and given that Contract A has insufficient funds, the following error is logged when executing the test:

     SIGABRT [   0.145s] motsu proxies_tests::pay_three_proxies

--- STDOUT:              motsu proxies_tests::pay_three_proxies ---

running 1 test

--- STDERR:              motsu proxies_tests::pay_three_proxies ---
thread 'proxies_tests::pay_three_proxies' panicked at crates/motsu/src/context.rs:309:9:
0x055a0a0CCBbC5f9cfC05C15377E967B18C5d82fF account should have enough funds to transfer 11 value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'proxies_tests::pay_three_proxies' panicked at core/src/panicking.rs:221:5:
panic in a function that cannot unwind
stack backtrace:
   0:     0x5811dd8eda4a - std::backtrace_rs::backtrace::libunwind::trace::hcbdd4c6210f5bc07
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
   1:     0x5811dd8eda4a - std::backtrace_rs::backtrace::trace_unsynchronized::he87d2785afe67d87
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x5811dd8eda4a - std::sys::backtrace::_print_fmt::h929869d145cab163
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/sys/backtrace.rs:66:9
   3:     0x5811dd8eda4a - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hf41f5d15bdcfa3ea
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/sys/backtrace.rs:39:26
   4:     0x5811dd913ffb - core::fmt::rt::Argument::fmt::h872e799ac424426e
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/fmt/rt.rs:177:76
   5:     0x5811dd913ffb - core::fmt::write::h3cddd84176566d56
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/fmt/mod.rs:1178:21
   6:     0x5811dd8ea743 - std::io::Write::write_fmt::h18a12af349b763d2
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/io/mod.rs:1823:15
   7:     0x5811dd8ed892 - std::sys::backtrace::BacktraceLock::print::h29d16808ef1d69b5
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/sys/backtrace.rs:42:9
   8:     0x5811dd8eeef5 - std::panicking::default_hook::{{closure}}::h7ab96b9b74d029bc
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panicking.rs:268:22
   9:     0x5811dd8eed24 - std::panicking::default_hook::hd0bddc8ff4ff05c4
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panicking.rs:295:9
  10:     0x5811dd8ef537 - std::panicking::rust_panic_with_hook::h5f16ce7ad24e0458
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panicking.rs:801:13
  11:     0x5811dd8ef3a3 - std::panicking::begin_panic_handler::{{closure}}::h348a6bb11823e24b
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panicking.rs:667:13
  12:     0x5811dd8edf29 - std::sys::backtrace::__rust_end_short_backtrace::h70c75cf4a615752a
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/sys/backtrace.rs:170:18
  13:     0x5811dd8ef064 - rust_begin_unwind
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panicking.rs:665:5
  14:     0x5811dd912a45 - core::panicking::panic_nounwind_fmt::runtime::hd2fa5af462ed8102
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/panicking.rs:112:18
  15:     0x5811dd912a45 - core::panicking::panic_nounwind_fmt::h442dc47b01f4edba
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/panicking.rs:122:5
  16:     0x5811dd912ad2 - core::panicking::panic_nounwind::h8a7d68807cbb5496
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/panicking.rs:221:5
  17:     0x5811dd912c35 - core::panicking::panic_cannot_unwind::had6663a5e0ab2442
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/panicking.rs:310:5
  18:     0x5811dd829510 - call_contract
                               at /home/nenad/repos/stylus-test-helpers/crates/motsu/src/shims.rs:262:1
  19:     0x5811dd885f03 - stylus_sdk::call::raw::RawCall::call::h731d58bd6b5d49b9
                               at /home/nenad/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stylus-sdk-0.7.0/src/call/raw.rs:199:40
  20:     0x5811dd8411bf - stylus_sdk::call::call::hc3ac74dbd2b11388
                               at /home/nenad/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stylus-sdk-0.7.0/src/call/mod.rs:89:9
  21:     0x5811dd8333cd - motsu::proxies_tests::IProxy::pay_proxy::hd27e4666fc344cd9
                               at /home/nenad/repos/stylus-test-helpers/crates/motsu/src/lib.rs:283:5
  22:     0x5811dd81d4ee - motsu::proxies_tests::Proxy::pay_proxy::hb90d396a5c4c4880
                               at /home/nenad/repos/stylus-test-helpers/crates/motsu/src/lib.rs:330:17
  23:     0x5811dd834478 - motsu::proxies_tests::pay_three_proxies::{{closure}}::he36a8b834cc89e5f
                               at /home/nenad/repos/stylus-test-helpers/crates/motsu/src/lib.rs:407:9
  24:     0x5811dd81da7d - motsu::proxies_tests::pay_three_proxies::h85f75b9b1e789586
                               at /home/nenad/repos/stylus-test-helpers/crates/motsu/src/lib.rs:381:5
  25:     0x5811dd834247 - motsu::proxies_tests::pay_three_proxies::{{closure}}::h13d8616eb209f3a0
                               at /home/nenad/repos/stylus-test-helpers/crates/motsu/src/lib.rs:381:24
  26:     0x5811dd820ac6 - core::ops::function::FnOnce::call_once::h79a6ca64024553c0
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/ops/function.rs:250:5
  27:     0x5811dd87f46b - core::ops::function::FnOnce::call_once::h270592e2e55048b4
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/ops/function.rs:250:5
  28:     0x5811dd87f46b - test::__rust_begin_short_backtrace::hf1f3a5c71ffff698
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/test/src/lib.rs:620:18
  29:     0x5811dd87ece8 - test::run_test_in_process::{{closure}}::h21d70c6a392d6ba5
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/test/src/lib.rs:643:60
  30:     0x5811dd87ece8 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::heed0470f8e510b74
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/panic/unwind_safe.rs:272:9
  31:     0x5811dd87ece8 - std::panicking::try::do_call::h61f5b4867b8c3353
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panicking.rs:557:40
  32:     0x5811dd87ece8 - std::panicking::try::h674a50631346599c
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panicking.rs:520:19
  33:     0x5811dd87ece8 - std::panic::catch_unwind::h7b71510f4833e7b4
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panic.rs:345:14
  34:     0x5811dd87ece8 - test::run_test_in_process::h9f593e57d7ebac38
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/test/src/lib.rs:643:27
  35:     0x5811dd87ece8 - test::run_test::{{closure}}::hf432c1a31cc5259c
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/test/src/lib.rs:564:43
  36:     0x5811dd842fe4 - test::run_test::{{closure}}::h95dc6a1fec4e16b6
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/test/src/lib.rs:594:41
  37:     0x5811dd842fe4 - std::sys::backtrace::__rust_begin_short_backtrace::h4b9aa0e7be2eb287
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/sys/backtrace.rs:154:18
  38:     0x5811dd846692 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hb03c448c41cf6ffd
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/thread/mod.rs:522:17
  39:     0x5811dd846692 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfca801a99fd69c71
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/panic/unwind_safe.rs:272:9
  40:     0x5811dd846692 - std::panicking::try::do_call::h8594acb7ae287a4c
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panicking.rs:557:40
  41:     0x5811dd846692 - std::panicking::try::h41d8bcefac40a007
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panicking.rs:520:19
  42:     0x5811dd846692 - std::panic::catch_unwind::he75b91cd1d65018a
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/panic.rs:345:14
  43:     0x5811dd846692 - std::thread::Builder::spawn_unchecked_::{{closure}}::h8336b19250079c9b
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/thread/mod.rs:521:30
  44:     0x5811dd846692 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h2cd20bb4953dc361
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/core/src/ops/function.rs:250:5
  45:     0x5811dd8f35fb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::ha7dd3b7c2c1bab75
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/alloc/src/boxed.rs:2229:9
  46:     0x5811dd8f35fb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h004b0bd2c5cdd647
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/alloc/src/boxed.rs:2229:9
  47:     0x5811dd8f35fb - std::sys::pal::unix::thread::Thread::new::thread_start::h9670d8044b1d08c4
                               at /rustc/4ac7bcbaad8d6fd7a51bdf1b696cbc3ba4c796cf/library/std/src/sys/pal/unix/thread.rs:105:17
  48:     0x70dd8a894ac3 - start_thread
                               at ./nptl/pthread_create.c:442:8
  49:     0x70dd8a926850 - __GI___clone3
                               at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
  50:                0x0 - <unknown>
thread caused non-unwinding panic. aborting.

  Cancelling due to test failure
------------
     Summary [   0.147s] 9 tests run: 8 passed, 1 failed, 0 skipped
     SIGABRT [   0.145s] motsu proxies_tests::pay_three_proxies
error: test run failed

This stack trace is redundant. Only this would be sufficient:

     SIGABRT [   0.145s] motsu proxies_tests::pay_three_proxies

--- STDOUT:              motsu proxies_tests::pay_three_proxies ---

running 1 test

--- STDERR:              motsu proxies_tests::pay_three_proxies ---
thread 'proxies_tests::pay_three_proxies' panicked at crates/motsu/src/context.rs:309:9:
0x055a0a0CCBbC5f9cfC05C15377E967B18C5d82fF account should have enough funds to transfer 11 value
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

  Cancelling due to test failure
------------
     Summary [   0.147s] 9 tests run: 8 passed, 1 failed, 0 skipped
     SIGABRT [   0.145s] motsu proxies_tests::pay_three_proxies
error: test run failed

Alternatively, it could be enabled with some feature flag when invoking tests.

Contribution Guidelines

  • I agree to follow this project's Contribution Guidelines
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant