Skip to content

Bug: Internal panic in bitreq when stress-testing #583

@ErikDeSmedt

Description

@ErikDeSmedt

I hit the following error in bitreq during stress-testing

Panic occurred: panicked at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitreq-0.3.5/src/connection.rs:401:17:
At all times, the next_request_id should be higher than the readable id

Backtrace:
   0: captaind::common::set_panic_hook::{{closure}}
             at /home/erik/code/ark/server/src/bin/captaind/../common/mod.rs:6:19
   1: <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/alloc/src/boxed.rs:1985:9
   2: std::panicking::rust_panic_with_hook
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:841:13
   3: std::panicking::begin_panic_handler::{{closure}}
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:699:13
   4: std::sys::backtrace::__rust_end_short_backtrace
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/backtrace.rs:174:18
   5: __rustc::rust_begin_unwind
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/panicking.rs:697:5
   6: core::panicking::panic_fmt
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/panicking.rs:75:14
   7: bitreq::connection::AsyncConnection::send::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitreq-0.3.5/src/connection.rs:401:17
   8: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/core/src/future/future.rs:133:9
   9: bitreq::client::Client::send_async::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitreq-0.3.5/src/client.rs:97:35
  10: bitcoind_async_client::client::Client::call::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitcoind-async-client-0.10.2/src/client/mod.rs:197:65
  11: bitcoind_async_client::client::v29::<impl bitcoind_async_client::traits::Reader for bitcoind_async_client::client::Client>::get_block_hash::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bitcoind-async-client-0.10.2/src/client/v29.rs:114:14
  12: server::txindex::Process::update_blocks::{{closure}}
             at /home/erik/code/ark/server/src/txindex/mod.rs:455:65
  13: server::txindex::Process::run::{{closure}}
             at /home/erik/code/ark/server/src/txindex/mod.rs:509:41
  14: server::txindex::TxIndex::start::{{closure}}
             at /home/erik/code/ark/server/src/txindex/mod.rs:404:15
  15: <core::pin::Pin<P> as core::future::future::Future>::poll
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/core/src/future/future.rs:133:9
  16: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/core.rs:374:24
  17: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/loom/std/unsafe_cell.rs:16:9
  18: tokio::runtime::task::core::Core<T,S>::poll
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/core.rs:363:30
  19: tokio::runtime::task::harness::poll_future::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/harness.rs:535:30
  20: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9
  21: std::panicking::catch_unwind::do_call
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40
  22: __rust_try
  23: std::panicking::catch_unwind
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19
  24: std::panic::catch_unwind
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  25: tokio::runtime::task::harness::poll_future
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/harness.rs:523:18
  26: tokio::runtime::task::harness::Harness<T,S>::poll_inner
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/harness.rs:210:27
  27: tokio::runtime::task::harness::Harness<T,S>::poll
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/harness.rs:155:20
  28: tokio::runtime::task::raw::poll
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/raw.rs:337:13
  29: tokio::runtime::task::raw::RawTask::poll
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/raw.rs:267:18
  30: tokio::runtime::task::LocalNotified<S>::run
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/mod.rs:515:13
  31: tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/multi_thread/worker.rs:643:18
  32: tokio::task::coop::with_budget
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/task/coop/mod.rs:167:5
  33: tokio::task::coop::budget
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/task/coop/mod.rs:133:5
  34: tokio::runtime::scheduler::multi_thread::worker::Context::run_task
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/multi_thread/worker.rs:634:9
  35: tokio::runtime::scheduler::multi_thread::worker::Context::run
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/multi_thread/worker.rs:567:29
  36: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/multi_thread/worker.rs:532:24
  37: tokio::runtime::context::scoped::Scoped<T>::set
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context/scoped.rs:40:9
  38: tokio::runtime::context::set_scheduler::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context.rs:176:38
  39: std::thread::local::LocalKey<T>::try_with
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/thread/local.rs:315:12
  40: std::thread::local::LocalKey<T>::with
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/thread/local.rs:279:20
  41: tokio::runtime::context::set_scheduler
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context.rs:176:17
  42: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/multi_thread/worker.rs:527:9
  43: tokio::runtime::context::runtime::enter_runtime
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context/runtime.rs:65:16
  44: tokio::runtime::scheduler::multi_thread::worker::run
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/multi_thread/worker.rs:519:5
  45: tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/multi_thread/worker.rs:485:45
  46: <tokio::runtime::blocking::task::BlockingTask<T> as core::future::future::Future>::poll
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/blocking/task.rs:42:21
  47: tokio::runtime::task::core::Core<T,S>::poll::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/core.rs:374:24
  48: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/loom/std/unsafe_cell.rs:16:9
  49: tokio::runtime::task::core::Core<T,S>::poll
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/core.rs:363:30
  50: tokio::runtime::task::harness::poll_future::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/harness.rs:535:30
  51: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9
  52: std::panicking::catch_unwind::do_call
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40
  53: __rust_try
  54: std::panicking::catch_unwind
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19
  55: std::panic::catch_unwind
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  56: tokio::runtime::task::harness::poll_future
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/harness.rs:523:18
  57: tokio::runtime::task::harness::Harness<T,S>::poll_inner
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/harness.rs:210:27
  58: tokio::runtime::task::harness::Harness<T,S>::poll
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/harness.rs:155:20
  59: tokio::runtime::task::raw::poll
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/raw.rs:337:13
  60: tokio::runtime::task::raw::RawTask::poll
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/raw.rs:267:18
  61: tokio::runtime::task::UnownedTask<S>::run
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/task/mod.rs:552:13
  62: tokio::runtime::blocking::pool::Task::run
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/blocking/pool.rs:161:19
  63: tokio::runtime::blocking::pool::Inner::run
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/blocking/pool.rs:516:22
  64: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}
             at /home/erik/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/blocking/pool.rs:474:47
  65: std::sys::backtrace::__rust_begin_short_backtrace
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:158:18
  66: std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/thread/mod.rs:559:17
  67: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:272:9
  68: std::panicking::catch_unwind::do_call
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:589:40
  69: __rust_try
  70: std::panicking::catch_unwind
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/panicking.rs:552:19
  71: std::panic::catch_unwind
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  72: std::thread::Builder::spawn_unchecked_::{{closure}}
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/std/src/thread/mod.rs:557:30
  73: core::ops::function::FnOnce::call_once{{vtable.shim}}
             at /nix/store/8zhq6gihfmj1a30dihin3zzyjc4n980x-rust-mixed/lib/rustlib/src/rust/library/core/src/ops/function.rs:253:5
  74: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/alloc/src/boxed.rs:1971:9
  75: std::sys::pal::unix::thread::Thread::new::thread_start
             at /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/std/src/sys/pal/unix/thread.rs:107:17
  76: start_thread
  77: __clone3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions