I'm trying to catch all panics that happen in certain user code, but this isn't even catching a generic panic invocation
Catch point:
https://github.com/rsimmonsjr/axiom/blob/features/async/src/actors.rs#L945
Future from unit test:
https://github.com/rsimmonsjr/axiom/blob/features/async/src/system.rs#L1225
Logs: https://files.khionu.net/ss/20191117_e3e914.png (note the lack of the warning that should happen if it did catch it)
It's panicking on the line before it calls inner_poll
, which isn't wrapped in a catch_unwind
, you should use RUST_BACKTRACE=1
to see where the panic comes from:
11: std::panicking::begin_panic
at /rustc/91fd6283e658e2c7aab2d3f5206fc1891f486af2/src/libstd/panicking.rs:400
12: axiom::system::tests::test_monitor_gets_panics_errors::{{closure}}
at src/system.rs:1232
13: axiom::actors::Actor::new::{{closure}}
at src/actors.rs:818
14: <alloc::boxed::Box<F> as core::ops::function::FnMut<A>>::call_mut
at /rustc/91fd6283e658e2c7aab2d3f5206fc1891f486af2/src/liballoc/boxed.rs:949
15: <axiom::actors::ActorStream as futures_core::stream::Stream>::poll_next
at src/actors.rs:925
16: axiom::executor::Task::poll
at src/executor.rs:353
2 Likes
Ahh.... so there was a problem in my understanding of delayed execution: functions that are "async" but aren't completely wrapped in the async codegen will execute up to the future that makes it an async function.
Thank you very much!
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.