-
Notifications
You must be signed in to change notification settings - Fork 901
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple peers unilaterally closing immediately upon new channel confirmation: "rejected commitment" #3596
Comments
Ah ha! Just got three more, and this time I managed to capture the logs immediately so there are no |
In all 3 of the logs you sent, the peer closed the channel on you. Seems like something about the feerate update that we send on channel open isn't being well understood by the peer, as they're rejecting the subsequent signature on the commitment update. The basic flow is:
... for 8 of your channels. Seems like there's a feerate bug interop problem here. Thanks for reporting. |
Digging a bit more, the commitment tx that your peer is expecting a signature for doesn't have the feerate update applied. (The original commitment tx amount is still shown in the commitment tx sent back in the error message from your peer). This seems very possibly related to a (recently) patched known bug in LND . |
@niftynei: Thank you for that analysis. I had a hunch it was due to an LND bug. 😉 |
Sending update_fee immediately after channel establishment seems to upset LND, so work around it by deferring it. The reason we increase the fee after establishment is because now we might need to close the channel in a hurry due to htlcs, but until there are htlcs that's unnecessary. Fixes: ElementsProject#3596 Signed-off-by: Rusty Russell <[email protected]>
Sending update_fee immediately after channel establishment seems to upset LND, so work around it by deferring it. The reason we increase the fee after establishment is because now we might need to close the channel in a hurry due to htlcs, but until there are htlcs that's unnecessary. Fixes: ElementsProject#3596 Signed-off-by: Rusty Russell <[email protected]>
Sending update_fee immediately after channel establishment seems to upset LND, so work around it by deferring it. The reason we increase the fee after establishment is because now we might need to close the channel in a hurry due to htlcs, but until there are htlcs that's unnecessary. Fixes: ElementsProject#3596 Signed-off-by: Rusty Russell <[email protected]>
Sending update_fee immediately after channel establishment seems to upset LND, so work around it by deferring it. The reason we increase the fee after establishment is because now we might need to close the channel in a hurry due to htlcs, but until there are htlcs that's unnecessary. Fixes: ElementsProject#3596 Changelog-Changed: Added workaround for lnd rejecting our commitment_signed when we send an update_fee after channel confirmed. Signed-off-by: Rusty Russell <[email protected]>
Sending update_fee immediately after channel establishment seems to upset LND, so work around it by deferring it. The reason we increase the fee after establishment is because now we might need to close the channel in a hurry due to htlcs, but until there are htlcs that's unnecessary. Fixes: ElementsProject#3596 Changelog-Changed: Added workaround for lnd rejecting our commitment_signed when we send an update_fee after channel confirmed. Signed-off-by: Rusty Russell <[email protected]>
Issue and Steps to Reproduce
I opened twelve channels in quick succession, and five of them were unilaterally closed by the peer as soon as they reached 3 confirmations. The debug logs for all five contain a message that says
rejected commitment
with aninvalid_commit_sig
. Also I seepeer_in WIRE_ERROR
, which to me says that the peer didn't like something my node did.Here are the debug logs from four of the five failed channels. (The fifth log contains many megabytes of channel update messages.) I'm not sure why there are so many
SKIPPED
log events scattered throughout them, but maybe there is enough intact information across all of them to astertain what went wrong.03d480ac7ad220371f1b9c2560be7eb8da6335d6a0d8cb1bc27db1a3958fd8c73f.log
029edbb304c7a00fbe9c912eebb8a865afe96a19015e0548e8be1691f965f1ca97.log
0351876efe01167a1f81f988ef470311eca17661dd1994bad01861d4a54565bc5c.log
03271338633d2d37b285dae4df40b413d8c6c791fbee7797bc5dc70812196d7d5c.log
For the sake of making this searchable, here's a summary of the sequence of events I see in these logs. These might be slightly out of order because I had to piece them together from multiple logs due to all the
SKIPPED
events.Funding tx … depth 3 of 3
State changed from CHANNELD_AWAITING_LOCKIN to CHANNELD_NORMAL
peer_out WIRE_FUNDING_LOCKED
Setting REMOTE feerate to 17890
Feerate: SENT_ADD_HTLC->SENT_ADD_COMMIT REMOTE now 17890
peer_out WIRE_UPDATE_FEE
peer_out WIRE_COMMITMENT_SIGNED
peer_in WIRE_ERROR
Peer transient failure in CHANNELD_NORMAL: channeld: (ignoring) channel …: rejected commitment: commit_height=1, invalid_commit_sig=…, commit_tx=…, sig_hash=…
getinfo
outputThe text was updated successfully, but these errors were encountered: