contractcourt/channel_arbitrator: ignore ErrDoubleSpend on force close
This commit mitigates a problem within the ChannelArbitrator, where after a restart we would start up in the state StateBroadcastCommit but fail to broadcast out commitment because a conflicting transaction (most likely our own commitment) was already broadcast. A more complete fix for this case will be added later, but this commit let the ChannelArbitrator continue, trying to close out the channel.
This commit is contained in:
parent
87d77a1b87
commit
d216416db8
@ -451,8 +451,10 @@ func (c *ChannelArbitrator) stateStep(bestHeight uint32, bestHash *chainhash.Has
|
||||
if err := c.cfg.PublishTx(closeTx); err != nil {
|
||||
log.Errorf("ChannelArbitrator(%v): unable to broadcast "+
|
||||
"close tx: %v", c.cfg.ChanPoint, err)
|
||||
if err != lnwallet.ErrDoubleSpend {
|
||||
return StateError, closeTx, err
|
||||
}
|
||||
}
|
||||
|
||||
// As we've have broadcast the commitment transaction, we send
|
||||
// out commitment output for incubation, but only if it wasn't
|
||||
|
Loading…
Reference in New Issue
Block a user