Skip to content

Assertion on !is_monitor_update_in_progress() is hit during splicing attempt on VSS #857

@tnull

Description

@tnull

We just hit this assertion in the VSS full-cycle test in CI (cf. https://github.com/lightningdevkit/ldk-node/actions/runs/23738424509/job/69148980994?pr=839):

B splices out to pay A

thread 'tokio-rt-worker' (22851) panicked at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning/src/ln/channel.rs:8966:3:
assertion failed: !self.context.channel_state.is_monitor_update_in_progress()
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

thread 'tokio-rt-worker' (22851) panicked at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning-net-tokio/src/lib.rs:359:5:
assertion failed: e.is_cancelled()

thread 'tokio-rt-worker' (22851) panicked at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning/src/ln/channelmanager.rs:17923:55:
called `Result::unwrap()` on an `Err` value: PoisonError { .. }

thread 'tokio-rt-worker' (22851) panicked at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning/src/ln/channelmanager.rs:3868:52:
called `Result::unwrap()` on an `Err` value: PoisonError { .. }

thread 'tokio-rt-worker' (22851) panicked at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning/src/ln/channelmanager.rs:15912:64:
called `Result::unwrap()` on an `Err` value: PoisonError { .. }

thread 'channel_full_cycle_with_vss_store' (20310) panicked at tests/common/mod.rs:1309:5:
03ee94a476d4233cc56311651e6e23b3aa1424ad8eaff13fc1ae15373dfff20865 timed out waiting for SplicePending event after 60s

thread 'channel_full_cycle_with_vss_store' (20310) panicked at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:233:5:
panic in a destructor during cleanup
thread caused non-unwinding panic. aborting.
thread 'channel_full_cycle_with_vss_store' (20310) panicked at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning/src/ln/channelmanager.rs:3046:62:
called `Result::unwrap()` on an `Err` value: PoisonError { .. }
stack backtrace:
   0:     0x561ada0f5b92 - std::backtrace_rs::backtrace::libunwind::trace::hff358a60abf734fc
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:     0x561ada0f5b92 - std::backtrace_rs::backtrace::trace_unsynchronized::h3b121f916dd95ec6
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:     0x561ada0f5b92 - std::sys::backtrace::_print_fmt::hde0a62ded68798e9
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:74:9
   3:     0x561ada0f5b92 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h93773fc827e3113d
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:44:26
   4:     0x561ada10881a - core::fmt::rt::Argument::fmt::h01eff69902dad97f
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/fmt/rt.rs:152:76
   5:     0x561ada10881a - core::fmt::write::hed7b5c73d82ecb7c
   6:     0x561ada0bfe66 - std::io::default_write_fmt::h2f696ff5b8bbaa4b
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:639:11
   7:     0x561ada0bfe66 - std::io::Write::write_fmt::h5e66814db8a9cfce
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/io/mod.rs:1994:13
   8:     0x561ada0d3a89 - std::sys::backtrace::BacktraceLock::print::h8b1d6fcc5a56d1a3
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:47:9
   9:     0x561ada0d3a89 - std::panicking::default_hook::{{closure}}::h2be84df4f189ae36
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:292:27
  10:     0x561ada0d3921 - std::panicking::default_hook::hf0ea8939246f43a9
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:316:9
  11:     0x561ad751537e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h02d35e3888986252
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
  12:     0x561ad751537e - test::test_main_with_exit_callback::{{closure}}::h939640a27d647173
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:145:21
  13:     0x561ada0d3db2 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hc9df09ff391af3e7
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2220:9
  14:     0x561ada0d3db2 - std::panicking::panic_with_hook::hb4bd9ac1123582a0
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:833:13
  15:     0x561ada0d3b48 - std::panicking::panic_handler::{{closure}}::hde00dd15f5637fe2
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:698:13
  16:     0x561ada0cdf19 - std::sys::backtrace::__rust_end_short_backtrace::hb72197fa777c1785
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:182:18
  17:     0x561ada0b42cd - __rustc[4425a7e20b4c8619]::rust_begin_unwind
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
  18:     0x561ada1131bc - core::panicking::panic_fmt::ha59b517dd231f4da
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
  19:     0x561ada112532 - core::result::unwrap_failed::hf2d1f30a3ac850fc
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:1867:5
  20:     0x561ad8378513 - core::result::Result<T,E>::unwrap::he9cc5458cb04edf8
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:1233:23
  21:     0x561ad8378513 - lightning::ln::channelmanager::PersistenceNotifierGuard<fn() .> lightning::ln::channelmanager::NotifyOption>::optionally_notify::hd82367f15675c50c
                               at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning/src/ln/channelmanager.rs:3046:62
  22:     0x561ad834500d - <lightning::ln::channelmanager::ChannelManager<M,T,ES,NS,SP,F,R,MR,L> as lightning::ln::msgs::BaseMessageHandler>::peer_disconnected::hcd63547afa220981
                               at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning/src/ln/channelmanager.rs:15337:28
  23:     0x561ad79f561b - <B as lightning::ln::msgs::BaseMessageHandler>::peer_disconnected::ha14a71c3cc219a66
                               at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning/src/ln/msgs.rs:2083:16
  24:     0x561ad8219de0 - lightning::ln::peer_handler::PeerManager<Descriptor,CM,RM,OM,L,CMH,NS,SM>::do_disconnect::haf17a37e821b63c0
                               at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning/src/ln/peer_handler.rs:3450:38
  25:     0x561ad8244119 - lightning::ln::peer_handler::PeerManager<Descriptor,CM,RM,OM,L,CMH,NS,SM>::disconnect_all_peers::hdb633a093a8b85de
                               at /home/runner/.cargo/git/checkouts/rust-lightning-e47a539aa5104a91/dcf0c20/lightning/src/ln/peer_handler.rs:3513:9
  26:     0x561ad77ab64c - ldk_node::Node::stop::h97025d66ad73d748
                               at /home/runner/work/ldk-node/ldk-node/ldk-node/src/lib.rs:712:21
  27:     0x561ad7beb5bb - <ldk_node::Node as core::ops::drop::Drop>::drop::h13a2a85129df0fa9
                               at /home/runner/work/ldk-node/ldk-node/ldk-node/src/lib.rs:1956:16
  28:     0x561ad74f3107 - core::ptr::drop_in_place<ldk_node::Node>::h6d0736d0bebcc2bb
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ptr/mod.rs:805:1
  29:     0x561ad74afbd2 - integration_tests_vss::common::do_channel_full_cycle::{{closure}}::h58cd2af711855ef8
                               at /home/runner/work/ldk-node/ldk-node/ldk-node/tests/common/mod.rs:1492:1
  30:     0x561ad74d7553 - integration_tests_vss::channel_full_cycle_with_vss_store::{{closure}}::h4bca53547007cb0d
                               at /home/runner/work/ldk-node/ldk-node/ldk-node/tests/integration_tests_vss.rs:60:3
  31:     0x561ad74e1d62 - <core::pin::Pin<P> as core::future::future::Future>::poll::hd1d84f15f0f1820b
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/future/future.rs:133:9
  32:     0x561ad74e2e6d - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::hc89c10e444dbe4ea
                               at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/park.rs:284:71
  33:     0x561ad74e28c6 - tokio::task::coop::with_budget::h9483a42c8307b2dd
                               at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:167:5
  34:     0x561ad74e28c6 - tokio::task::coop::budget::hc83119400341faa4
                               at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:133:5
  35:     0x561ad74e28c6 - tokio::runtime::park::CachedParkThread::block_on::h46672eb0a3dda52f
                               at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/park.rs:284:31
  36:     0x561ad74ee134 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::ha5a61fe89753b374
                               at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/blocking.rs:66:14
  37:     0x561ad74e6ef8 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::hea870605cd6d0269
                               at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/multi_thread/mod.rs:89:22
  38:     0x561ad74adf4b - tokio::runtime::context::runtime::enter_runtime::h10c67aa073d11b52
                               at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/runtime.rs:65:16
  39:     0x561ad74e6e74 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::he748dbd2340dc62e
                               at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/multi_thread/mod.rs:88:9
  40:     0x561ad74f11a4 - tokio::runtime::runtime::Runtime::block_on_inner::h403b77f2565f89a7
                               at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:373:50
  41:     0x561ad74f14ac - tokio::runtime::runtime::Runtime::block_on::h5c44c71723e3a40c
                               at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:345:18
  42:     0x561ad74da1ae - integration_tests_vss::channel_full_cycle_with_vss_store::h9f5ab00c0163db3e
                               at /home/runner/work/ldk-node/ldk-node/ldk-node/tests/integration_tests_vss.rs:60:8
  43:     0x561ad74d7727 - integration_tests_vss::channel_full_cycle_with_vss_store::{{closure}}::h61a86670ec9d028c
                               at /home/runner/work/ldk-node/ldk-node/ldk-node/tests/integration_tests_vss.rs:19:45
  44:     0x561ad74f15d6 - core::ops::function::FnOnce::call_once::ha204586dc7194b45
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
  45:     0x561ad751513b - core::ops::function::FnOnce::call_once::hddb3cd395c36bfbb
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
  46:     0x561ad751513b - test::__rust_begin_short_backtrace::h0b6a7601d9750bfa
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:663:18
  47:     0x561ad7528b4a - test::run_test_in_process::{{closure}}::h444209903f00b347
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:74
  48:     0x561ad7528b4a - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hfb3ba8f46e537649
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
  49:     0x561ad7528b4a - std::panicking::catch_unwind::do_call::h1672a45911fcf9dc
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
  50:     0x561ad7528b4a - std::panicking::catch_unwind::h0fadaee22787a6dd
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
  51:     0x561ad7528b4a - std::panic::catch_unwind::hc47ad190f2c8e188
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
  52:     0x561ad7528b4a - test::run_test_in_process::hcd7faaf934f29999
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:686:27
  53:     0x561ad7528b4a - test::run_test::{{closure}}::hddc4550da4871867
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:607:43
  54:     0x561ad7502fa4 - test::run_test::{{closure}}::h98ae26689f13ed94
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/test/src/lib.rs:637:41
  55:     0x561ad7502fa4 - std::sys::backtrace::__rust_begin_short_backtrace::h3ec4d1f21ad44588
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/backtrace.rs:166:18
  56:     0x561ad7506942 - std::thread::lifecycle::spawn_unchecked::{{closure}}::{{closure}}::hd8bf2c73d479939f
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:91:13
  57:     0x561ad7506942 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h3b4248f358af2491
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panic/unwind_safe.rs:274:9
  58:     0x561ad7506942 - std::panicking::catch_unwind::do_call::hda10a64f4b8daebe
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:581:40
  59:     0x561ad7506942 - std::panicking::catch_unwind::h659e5ee8336ec8c7
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:544:19
  60:     0x561ad7506942 - std::panic::catch_unwind::h9d4d66a538912c18
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panic.rs:359:14
  61:     0x561ad7506942 - std::thread::lifecycle::spawn_unchecked::{{closure}}::h7557906bb51d79f1
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/thread/lifecycle.rs:89:26
  62:     0x561ad7506942 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h9e460d1d7fc83d35
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
  63:     0x561ada0c8f6f - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h61282da819d64ea9
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/alloc/src/boxed.rs:2206:9
  64:     0x561ada0c8f6f - std::sys::thread::unix::Thread::new::thread_start::h982f9ea829d1b5fb
                               at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/sys/thread/unix.rs:127:17
  65:     0x7fd11c29caa4 - <unknown>
  66:     0x7fd11c329c6c - <unknown>
  67:                0x0 - <unknown>
error: test failed, to rerun pass `--test integration_tests_vss`

Caused by:
  process didn't exit successfully: `/home/runner/work/ldk-node/ldk-node/ldk-node/target/debug/deps/integration_tests_vss-12b0366327309aeb` (signal: 6, SIGABRT: process abort signal)
Error: Process completed with exit code 101.

Not sure if this is related to splicing really (cc @jkczyz) or rather hit due to the recently introduced deferred ChannelMonitor persistence (#782, cc @joostjager).

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