From d274de2bf48c6d8ed71db9bb9ff9aaa67dd48f3f Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Sun, 26 Jun 2022 13:59:01 +0930 Subject: [PATCH] pytest: fix flake in test_htlc_too_dusty_outgoing We can sneak the HTLC add in before we do the update_fee which fails: ``` # the channel should start warning -- too much dust inv = l2.rpc.invoice(htlc_val_msat, str(num_dusty_htlcs + 1), str(num_dusty_htlcs + 1)) with pytest.raises(RpcError, match=r'WIRE_TEMPORARY_CHANNEL_FAILURE'): > l1.rpc.sendpay(route, inv['payment_hash'], payment_secret=inv['payment_secret']) E Failed: DID NOT RAISE tests/test_pay.py:2654: Failed ``` From the logs: ``` lightningd-1: 2022-05-20T02:16:40.008Z DEBUG 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-channeld-chan#1: NEW:: HTLC LOCAL 14 = SENT_ADD_HTLC/RCVD_ADD_HTLC lightningd-1: 2022-05-20T02:16:40.010Z DEBUG 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-channeld-chan#1: Adding HTLC 14 amount=10000000msat cltv=113 gave CHANNEL_ERR_ADD_OK lightningd-1: 2022-05-20T02:16:40.012Z DEBUG 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-channeld-chan#1: peer_out WIRE_UPDATE_ADD_HTLC lightningd-1: 2022-05-20T02:16:40.015Z DEBUG 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-channeld-chan#1: REPLY WIRE_CHANNELD_OFFER_HTLC_REPLY with 0 fds lightningd-1: 2022-05-20T02:16:40.026Z DEBUG 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-channeld-chan#1: peer_out WIRE_WARNING lightningd-1: 2022-05-20T02:16:40.029Z DEBUG 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-channeld-chan#1: billboard perm: Too much dust to update fee (Desired feerate update 20000) lightningd-1: 2022-05-20T02:16:40.035Z INFO 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-chan#1: Peer transient failure in CHANNELD_NORMAL: channeld WARNING: Too much dust to update fee (Desired feerate update 20000) lightningd-1: 2022-05-20T02:16:40.039Z DEBUG 022d223620a359a47ff7f7ac447c85c46c923da53389221a0054c11c1e3ca31d59-lightningd: Will try reconnect in 60 seconds ``` Signed-off-by: Rusty Russell --- tests/test_pay.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_pay.py b/tests/test_pay.py index 11581ee6a..dc22f42e2 100644 --- a/tests/test_pay.py +++ b/tests/test_pay.py @@ -2634,6 +2634,9 @@ def test_htlc_too_dusty_outgoing(node_factory, bitcoind, chainparams): l1.set_feerates([feerate * 2] * 4, False) l1.restart() + # Make sure fails before we try sending htlc! + l1.daemon.wait_for_log('Too much dust to update fee') + # the channel should start warning -- too much dust inv = l2.rpc.invoice(htlc_val_msat, str(num_dusty_htlcs + 1), str(num_dusty_htlcs + 1)) with pytest.raises(RpcError, match=r'WIRE_TEMPORARY_CHANNEL_FAILURE'):