Channel restoration of old format fee update #2558
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 fixes a bug that was introduced in #2397, where we started restoring
FeeUpdate
s from disk as other HTLC updates. The problem arose if the prior version oflnd
wrote the updates to disk, and the new version attempted to restore. Since the old version did not write thelogIndex
forFeeUpdate
s, this would be 0, causing it to be out of sync with the log update index, causing problems.We fix this by setting the
logIndex
to the current log update index in case it is unset. A test that would previously cause this desync and following crash duringcompactLogs
is included.The last commit contains a sanity check that ensures all updates have their log index properly set, to catch these bugs in the future. It is not strictly necessary, but I thought it could be nice to catch it already here, and not in some obscure situation down the road.
Fixes #2546