From b93ff262652e61173ac94a5fd81b027ad4486bb9 Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Sun, 10 Mar 2019 16:22:58 -0700 Subject: [PATCH] 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. --- channeldb/db.go | 6 ++++++ chanrestore.go | 10 ---------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/channeldb/db.go b/channeldb/db.go index 313ac1f0..763a74c8 100644 --- a/channeldb/db.go +++ b/channeldb/db.go @@ -906,6 +906,12 @@ func (d *DB) RestoreChannelShells(channelShells ...*ChannelShell) error { for _, channelShell := range channelShells { 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 // and link node for this channel. If the channel // already exists, then in order to ensure this method diff --git a/chanrestore.go b/chanrestore.go index adf76397..3e219489 100644 --- a/chanrestore.go +++ b/chanrestore.go @@ -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 }