Description
#2090 was supposed to fix #2052, but there still seems to be an unhandled case somewhere.
Currently, we have a workaround where our channel monitor persistence task will wake our BGP using a channel just after every persist is completed. You can see the code here, and the notification trigger is here.
After commenting out this channel, all of our integration tests which make payments fail:
failures:
---- payments::lsp_user_zeroconf_payments stdout ----
thread 'payments::lsp_user_zeroconf_payments' panicked at smoketest/src/harness.rs:726:13:
Node -1 failed to make progress: LSP failed to make progress: WaitAll([PaymentSent]): [102=Command]: (lsp) timed out waiting for test events: 0/1 PaymentSent; Node 0 failed to make progress: User failed to make progress: WaitAll([PaymentClaimable, PaymentClaimed]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentClaimable, 0/1 PaymentClaimed
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
---- payments::user_errors stdout ----
thread 'payments::user_errors' panicked at smoketest/src/harness.rs:726:13:
Node 0 failed to make progress: User failed to make progress: WaitAll([PaymentSent]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentSent; Node -1 failed to make progress: LSP failed to make progress: WaitAll([PaymentClaimable, PaymentClaimed]): [102=Command]: (lsp) timed out waiting for test events: 0/1 PaymentClaimable, 0/1 PaymentClaimed
---- payments::lsp_pays_user_over_confirmed_channel stdout ----
thread 'payments::lsp_pays_user_over_confirmed_channel' panicked at smoketest/src/harness.rs:726:13:
Node -1 failed to make progress: LSP failed to make progress: WaitAll([PaymentSent]): [102=Command]: (lsp) timed out waiting for test events: 0/1 PaymentSent; Node 0 failed to make progress: User failed to make progress: WaitAll([PaymentClaimable, PaymentClaimed]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentClaimable, 0/1 PaymentClaimed
---- payments::lsp_user_channel_config_update stdout ----
thread 'payments::lsp_user_channel_config_update' panicked at smoketest/src/harness.rs:726:13:
Node -1 failed to make progress: LSP failed to make progress: WaitAll([PaymentSent]): [102=Command]: (lsp) timed out waiting for test events: 0/1 PaymentSent; Node 0 failed to make progress: User failed to make progress: WaitAll([PaymentClaimable, PaymentClaimed]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentClaimed, 0/1 PaymentClaimable
---- payments::online_jit_payment stdout ----
thread 'payments::online_jit_payment' panicked at smoketest/src/harness.rs:726:13:
Node -1 failed to make progress: LSP failed to make progress: WaitAll([FundingGenerationHandled, TxBroadcasted, ChannelPending, ChannelReady]): [102=Command]: (lsp) timed out waiting for test events: 0/1 FundingGenerationHandled, 0/1 ChannelPending, 0/1 TxBroadcasted, 0/1 ChannelReady; Node 0 failed to make progress: User failed to make progress: WaitAll([PaymentSent]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentSent; Node 1 failed to make progress: User failed to make progress: WaitAll([PaymentClaimable, PaymentClaimed, ChannelPending, ChannelReady]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentClaimed, 0/1 ChannelPending, 0/1 ChannelReady, 0/1 PaymentClaimable
---- payments::one_sat_jit_payment stdout ----
thread 'payments::one_sat_jit_payment' panicked at smoketest/src/harness.rs:726:13:
Node 0 failed to make progress: User failed to make progress: WaitAll([PaymentSent]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentSent; Node 1 failed to make progress: User failed to make progress: WaitAll([PaymentClaimable, PaymentClaimed, ChannelPending, ChannelReady]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentClaimable, 0/1 PaymentClaimed
---- payments::offline_jit_payment stdout ----
thread 'payments::offline_jit_payment' panicked at smoketest/src/harness.rs:726:13:
Node 0 failed to make progress: User failed to make progress: WaitAll([PaymentSent]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentSent; Node 1 failed to make progress: User failed to make progress: WaitAll([PaymentClaimable, PaymentClaimed, ChannelPending, ChannelReady]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentClaimable, 0/1 PaymentClaimed
---- payments::multi_jit_channel stdout ----
thread 'payments::multi_jit_channel' panicked at smoketest/src/harness.rs:726:13:
Node -1 failed to make progress: LSP failed to make progress: WaitAll([FundingGenerationHandled, TxBroadcasted, ChannelPending, ChannelReady]): [102=Command]: (lsp) timed out waiting for test events: 0/1 ChannelPending, 0/1 ChannelReady, 0/1 TxBroadcasted, 0/1 FundingGenerationHandled; Node 0 failed to make progress: User failed to make progress: WaitAll([PaymentSent]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentSent; Node 1 failed to make progress: User failed to make progress: WaitAll([PaymentClaimable, PaymentClaimed, ChannelPending, ChannelReady]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentClaimed, 0/1 PaymentClaimable, 0/1 ChannelReady, 0/1 ChannelPending
---- payments::user_lsp_simple_payments stdout ----
thread 'payments::user_lsp_simple_payments' panicked at smoketest/src/harness.rs:726:13:
Node 0 failed to make progress: User failed to make progress: WaitAll([PaymentSent]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentSent; Node -1 failed to make progress: LSP failed to make progress: WaitAll([PaymentClaimable, PaymentClaimed]): [102=Command]: (lsp) timed out waiting for test events: 0/1 PaymentClaimable, 0/1 PaymentClaimed
---- payments::user_pays_offline_user stdout ----
thread 'payments::user_pays_offline_user' panicked at smoketest/src/harness.rs:726:13:
Node -1 failed to make progress: LSP failed to make progress: WaitAll([PaymentSent]): [102=Command]: (lsp) timed out waiting for test events: 0/1 PaymentSent; Node 0 failed to make progress: User failed to make progress: WaitAll([PaymentClaimable, PaymentClaimed]): [106=Command]: (node) timed out waiting for test events: 0/1 PaymentClaimed, 0/1 PaymentClaimable
failures:
payments::lsp_pays_user_over_confirmed_channel
payments::lsp_user_channel_config_update
payments::lsp_user_zeroconf_payments
payments::multi_jit_channel
payments::offline_jit_payment
payments::one_sat_jit_payment
payments::online_jit_payment
payments::user_errors
payments::user_lsp_simple_payments
payments::user_pays_offline_user
test result: FAILED. 5 passed; 10 failed; 1 ignored; 0 measured; 0 filtered out; finished in 46.87s
I don't know what specifically the issue is, but one thing all these tests have in common is they wait for LDK to emit a PaymentSent
for us to handle.
I'm including a more detailed log from one of the integration tests that you can pore through if it would help.
12_46_49.redacted.log (EDIT: Here's a gist containing the same info)
(P.S. our code has since been updated to also await on the onion messenger's get_update_future()
, but after commenting out the channel receiver the problem still persists, so we've ruled out that as the cause).