Description
I'm using RLN, which uses a forked version of rust-lightning, where I've added support for RGB. I'm running an integration test (https://github.com/RGB-Tools/rgb-lightning-node/blob/master/src/test/close_force_standard.rs) where I open a channel between 2 nodes, make 2 payments via keysend and force close the channel.
After the channel closure I sometimes see a behavior (non-deterministic, but quite frequent) where the BumpTransactionEventHandler
tries to bump the fees for an HTLC TX (we are using anchor outputs). This is strange because before closing the channel, during the keysend, we wait for the payment to become successful (which happens during the PaymentSent
and PaymentClaimed
events), therefore we expect the channel to have no pending HTLCs and the node to broadcast the last commiment TX.
I'm writing here first of all to understand if you think this is expected behavior or not. That is, waiting for the mentioned events should guarantee that the OnchainTxHandler
will broadcast the last valid commitment TX?
I've also collected some logs, hoping this could help better understand the issue:
- I see a call to
provide_latest_holder_tx
that sets theholder_commitment
field to the latest commitment TX (the one we expect to be broadcasted, with no HTLCs) - the call to
channel_manager.force_close_broadcasting_latest_txn
happens after theholder_commitment
is set to the expected commitment TX - by printing
self.holder_commitment
inget_maybe_signed_holder_tx
I see the TX is not the expected one but it's the previous commitment TX (the one with 1 HTLC) instead
I don't think that our changes to support RGB could cause this issue. If you think this part is well-tested on your side I'll investigate more and maybe try to reproduce it on a vanilla node.