Skip to content

unwrap() hit in net.rs code #850

@johnwhumphreys

Description

@johnwhumphreys

This happened on a next_backoff() call.

next_backoff() can return None if the operation has timed out, so it is not safe to unwrap

thread 'tokio-runtime-worker' panicked at fbcode/monarch/hyperactor/src/channel/net.rs:761:60:
called `Option::unwrap()` on a `None` value
[-]E0722 10:28:09.478775 279250 fbcode/monarch/hyperactor/src/panic_handler.rs:47] panic at fbcode/monarch/hyperactor/src/channel/net.rs:761:60, stacktrace:   0: std::panicking::update_hook::<hyperactor::panic_handler::set_panic_hook::{closure#0}>::{closure#0}
             at ./fbcode/monarch/hyperactor/src/panic_handler.rs:31:25
   1: std::panicking::rust_panic_with_hook
             at ./xplat/rust/toolchain/sysroot/1.88.0/library/alloc/src/boxed.rs:1980:9
   2: std::panicking::begin_panic_handler::{closure#0}
             at ./xplat/rust/toolchain/sysroot/1.88.0/library/std/src/panicking.rs:699:13
   3: std::sys::backtrace::__rust_end_short_backtrace::<std::panicking::begin_panic_handler::{closure#0}, !>
             at ./xplat/rust/toolchain/sysroot/1.88.0/library/std/src/sys/backtrace.rs:168:18
   4: __rustc::rust_begin_unwind
             at ./xplat/rust/toolchain/sysroot/1.88.0/library/std/src/panicking.rs:697:5
   5: core::panicking::panic_fmt
             at ./xplat/rust/toolchain/sysroot/1.88.0/library/core/src/panicking.rs:75:14
   6: core::panicking::panic
             at ./xplat/rust/toolchain/sysroot/1.88.0/library/core/src/panicking.rs:145:5
   7: core::option::unwrap_failed
             at ./xplat/rust/toolchain/sysroot/1.88.0/library/core/src/option.rs:2040:5
   8: <hyperactor::channel::net::NetTx<hyperactor_mesh::alloc::remoteprocess::RemoteProcessAllocatorMessage>>::run::<hyperactor::channel::net::meta::MetaLink>::{closure#0}
             at ./xplat/rust/toolchain/sysroot/1.88.0/library/core/src/option.rs:1003:21
   9: <tokio::runtime::task::trace::Root<<hyperactor::channel::net::NetTx<hyperactor_mesh::alloc::remoteprocess::RemoteProcessAllocatorMessage>>::run<hyperactor::channel::net::meta::MetaLink>::{closure#0}> as core::future::future::Future>::poll
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/task/trace/mod.rs:263:13
  10: <tokio::runtime::task::core::Core<tracing::instrument::Instrumented<tokio::runtime::task::trace::Root<<hyperactor::channel::net::NetTx<hyperactor_mesh::alloc::remoteprocess::RemoteProcessAllocatorMessage>>::run<hyperactor::channel::net::meta::MetaLink>::{closure#0}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::poll
             at ./third-party/rust/vendor/tracing-0.1.41/src/instrument.rs:321:9
  11: <tokio::runtime::task::harness::Harness<tracing::instrument::Instrumented<tokio::runtime::task::trace::Root<<hyperactor::channel::net::NetTx<hyperactor_mesh::alloc::remoteprocess::RemoteProcessAllocatorMessage>>::run<hyperactor::channel::net::meta::MetaLink>::{closure#0}>>, alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle>>>::poll
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/task/harness.rs:532:19
  12: <tokio::runtime::scheduler::multi_thread::worker::Context>::run_task
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/task/raw.rs:201:18
  13: <tokio::runtime::scheduler::multi_thread::worker::Context>::run
  14: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}::{closure#0}, ()>
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/scheduler/multi_thread/worker.rs:507:21
  15: tokio::runtime::context::runtime::enter_runtime::<tokio::runtime::scheduler::multi_thread::worker::run::{closure#0}, ()>
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/context.rs:176:26
  16: tokio::runtime::scheduler::multi_thread::worker::run
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/scheduler/multi_thread/worker.rs:494:5
  17: <tracing::instrument::Instrumented<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>> as core::future::future::Future>::poll
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/scheduler/multi_thread/worker.rs:460:45
  18: <tokio::runtime::task::core::Core<tracing::instrument::Instrumented<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/task/core.rs:331:17
  19: <tokio::runtime::task::harness::Harness<tracing::instrument::Instrumented<tokio::runtime::blocking::task::BlockingTask<<tokio::runtime::scheduler::multi_thread::worker::Launch>::launch::{closure#0}>>, tokio::runtime::blocking::schedule::BlockingSchedule>>::poll
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/task/harness.rs:532:19
  20: <tokio::runtime::blocking::pool::Inner>::run
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/task/raw.rs:201:18
  21: std::sys::backtrace::__rust_begin_short_backtrace::<<tokio::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>
             at ./third-party/rust/vendor/tokio-1.45.0/src/runtime/blocking/pool.rs:469:13
  22: <<std::thread::Builder>::spawn_unchecked_<<tokio::runtime::blocking::pool::Spawner>::spawn_thread::{closure#0}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
             at ./xplat/rust/toolchain/sysroot/1.88.0/library/std/src/thread/mod.rs:559:17
  23: <std::sys::pal::unix::thread::Thread>::new::thread_start
             at ./xplat/rust/toolchain/sysroot/1.88.0/library/alloc/src/boxed.rs:1966:9
  24: start_thread
  25: __clone3

Metadata

Metadata

Assignees

No one assigned

    Labels

    paper-cutA set of minor bugs we are tracking internally and moving to GH Issues.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions