Skip to content

Background processor still not woken after async monitor persistence completion #3660

Closed
@MaxFangX

Description

@MaxFangX

#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).

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