rpcserver: no manual close of restored channels #4525
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.
Fixes #3321.
When restoring a channel from SCB we don't always guard it from being manually closed. For example if no connection to the remote peer can be established, the channel only hast the status
ChanStatusRestored
but notChanStatusLocalDataLoss
so the force close check in the channel arbitrator doesn't work correctly and lnd crashes. On restart the channel then has a state that cannot be recovered from.Therefore we need to disallow closing channels (coop and force) for any restored channel, no matter what resolution state it currently has.