Use commit tx number to reject stale messages. #154
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR aims to fix the issue where stale messages are receive and mess up the internal state of the LDK node. It does so by embedding the commitment transaction number together with commitment signatures, and checking that we are given the expected one within the
with_useable_channel_lock
method.I reverted previous changes to the message handler dropping messages on disconnect as I believe they are not necessary anymore with this change.
I can't promise that all concurrency issues will be resolved by this patch, but it should at least be more robust than it currently is.
(Leaving as draft for now as it builds on top of #141 which is not merged yet).