-
Notifications
You must be signed in to change notification settings - Fork 666
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
Possible overflow when adding duration to instant in libp2p_mdns::behaviour::Behaviour
#1974
Comments
@helixstreet what is your node version? |
Ahh: CC @paritytech/networking |
libp2p_mdns::behaviour::Behaviour
We seem to be seeing this at Humanode with Substrate v0.9.41 (pre-1.0.0 that is). Details
|
I think what happens is the code runs on overloaded CPU, and the implementation manages to tick (i.e. delayed enough that the sum overflows). This code looks odd to me: fn at(instant: Instant) -> Self {
// Taken from: https://docs.rs/async-io/1.7.0/src/async_io/lib.rs.html#91
let mut inner = time::interval_at(
TokioInstant::from_std(instant),
Duration::new(std::u64::MAX, 1_000_000_000 - 1),
);
inner.set_missed_tick_behavior(MissedTickBehavior::Skip);
Self { inner }
} Issue seems to be originating from here: libp2p/rust-libp2p#2748 |
Ty @MOZGIII, so this is indeed some upstream bug. We can not do that much, so I will close this issue. |
2023-10-19 22:53:30 ✨ Imported #17795322 (0xeb24…427a)
2023-10-19 22:53:30 ✨ Imported #17795322 (0x9740…8c23)
2023-10-19 22:53:30 ✨ Imported #17795322 (0xf182…b6cf)
2023-10-19 22:53:34 💤 Idle (22 peers), best: #17795322 (0xeb24…427a), finalized #17795318 (0x0a5a…2347), ⬇ 529.3kiB/s ⬆ 623.8kiB/s
2023-10-19 22:53:36 ✨ Imported #17795323 (0xf5a5…50a7)
====================
Version: 1.2.0-72c45356393
0: backtrace::capture::Backtrace::new
1: sp_panic_handler::set::{{closure}}
2: std::panicking::rust_panic_with_hook
3: std::panicking::begin_panic_handler::{{closure}}
4: std::sys_common::backtrace::__rust_end_short_backtrace
5: _rust_begin_unwind
6: core::panicking::panic_fmt
7: core::option::expect_failed
8: tokio::time::interval::Interval::poll_tick
9: <libp2p_mdns::behaviour::Behaviour
as libp2p_swarm::behaviour::NetworkBehaviour>::poll
10: <sc_network::behaviour::Behaviour as libp2p_swarm::behaviour::NetworkBehaviour>::poll
11: libp2p_swarm::Swarm::poll_next_event
12: sc_network::service::NetworkWorker<B,H>::next_action::{{closure}}::{{closure}}::{{closure}}
13: sc_service::build_network_future::{{closure}}::{{closure}}::{{closure}}
14: sc_service::builder::build_network::{{closure}}
15: tokio::runtime::task::raw::poll
16: std::sys_common::backtrace::__rust_begin_short_backtrace
17: core::ops::function::FnOnce::call_once{{vtable.shim}}
18: std::sys::unix::thread::Thread::new::thread_start
19: __pthread_joiner_wake
Thread 'tokio-runtime-worker' panicked at 'overflow when adding duration to instant', library/std/src/time.rs:408
This is a bug. Please report it at:
The text was updated successfully, but these errors were encountered: