-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Description
Pre-Submission Checklist
- I have searched the existing issues and believe this is a new bug.
- I am not asking a question about how to use lnd, but reporting a bug (otherwise open a discussion).
LND Version
master
LND Configuration
Default
Backend Version
Any
Backend Configuration
Default
OS/Distribution
MacOS M1
Bug Details & Steps to Reproduce
When a peer restarts during an incomplete commit dance (after update_fee and commit_sig but before receiving the remote commit_sig), LND force closes the channel after ChannelReestablish (Alice is unable to validate it, and because of this Alice triggers LinkFailureForceClose. This suggests incorrect handling of commit re-synchronization during channel reestablishment for update_fee).
Scenario:
Alice -> update_fee
Alice -> commit_sig
Bob -> revoke_and_ack
Bob signs next commitment (commit_sig not delivered)
--- restart both peers ---
Bob re-sends commit_sig during reestablish
Alice force closesThis is a subtle edge case that can rarely occur in production. It was discovered while working on: NishantBansal2003#7
Expected Behavior
Bob is expected to re-send the pending commit_sig after channel_reestablish. When validating the commit_sig, Alice should accept the re-sent commit_sig and continue normal operation.
Debug Information
0001-htlcswitch-test-reestablish-after-partial-commit-exc.patch
Environment
No response