chanbackup: continue recovery if channel already exists

This commit is contained in:
Oliver Gugger 2019-11-18 09:02:56 +01:00
parent 88f037f8fd
commit 4728ac844a
No known key found for this signature in database
GPG Key ID: 8E4256593F177720

@ -5,6 +5,7 @@ import (
"github.com/btcsuite/btcd/btcec" "github.com/btcsuite/btcd/btcec"
"github.com/davecgh/go-spew/spew" "github.com/davecgh/go-spew/spew"
"github.com/lightningnetwork/lnd/channeldb"
"github.com/lightningnetwork/lnd/keychain" "github.com/lightningnetwork/lnd/keychain"
) )
@ -47,6 +48,14 @@ func Recover(backups []Single, restorer ChannelRestorer,
backup.FundingOutpoint) backup.FundingOutpoint)
err := restorer.RestoreChansFromSingles(backup) err := restorer.RestoreChansFromSingles(backup)
// If a channel is already present in the channel DB, we can
// just continue. No reason to fail a whole set of multi backups
// for example. This allows resume of a restore in case another
// error happens.
if err == channeldb.ErrChanAlreadyExists {
continue
}
if err != nil { if err != nil {
return err return err
} }