channeldb: set restored chan status within RestoreChannelShells
In this commit, we move the location where we restore the channel status to within the `RestoreChannelShells` method itself. Before this commit, we attempted to use `ApplyChanStatus` which creates a DB transaction and relies on a fully populated channel state, which in the restoration case, we don't yet have.
This commit is contained in:
parent
13e7244d14
commit
b93ff26265
@ -906,6 +906,12 @@ func (d *DB) RestoreChannelShells(channelShells ...*ChannelShell) error {
|
|||||||
for _, channelShell := range channelShells {
|
for _, channelShell := range channelShells {
|
||||||
channel := channelShell.Chan
|
channel := channelShell.Chan
|
||||||
|
|
||||||
|
// When we make a channel, we mark that the channel has
|
||||||
|
// been restored, this will signal to other sub-systems
|
||||||
|
// to not attempt to use the channel as if it was a
|
||||||
|
// regular one.
|
||||||
|
channel.chanStatus |= ChanStatusRestored
|
||||||
|
|
||||||
// First, we'll attempt to create a new open channel
|
// First, we'll attempt to create a new open channel
|
||||||
// and link node for this channel. If the channel
|
// and link node for this channel. If the channel
|
||||||
// already exists, then in order to ensure this method
|
// already exists, then in order to ensure this method
|
||||||
|
@ -101,16 +101,6 @@ func (c *chanDBRestorer) openChannelShell(backup chanbackup.Single) (
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(roasbeef): move this mapping elsewhere?
|
|
||||||
|
|
||||||
// When we make a channel, we mark that the channel has been restored,
|
|
||||||
// this will signal to other sub-systems to not attempt to use the
|
|
||||||
// channel as if it was a regular one.
|
|
||||||
chanStatus := channeldb.ChanStatusDefault |
|
|
||||||
channeldb.ChanStatusRestored
|
|
||||||
|
|
||||||
chanShell.Chan.ApplyChanStatus(chanStatus)
|
|
||||||
|
|
||||||
return &chanShell, nil
|
return &chanShell, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user