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,7 +451,9 @@ func (c *ChannelArbitrator) stateStep(bestHeight uint32, bestHash *chainhash.Has
|
|||||||
if err := c.cfg.PublishTx(closeTx); err != nil {
|
if err := c.cfg.PublishTx(closeTx); err != nil {
|
||||||
log.Errorf("ChannelArbitrator(%v): unable to broadcast "+
|
log.Errorf("ChannelArbitrator(%v): unable to broadcast "+
|
||||||
"close tx: %v", c.cfg.ChanPoint, err)
|
"close tx: %v", c.cfg.ChanPoint, err)
|
||||||
return StateError, closeTx, err
|
if err != lnwallet.ErrDoubleSpend {
|
||||||
|
return StateError, closeTx, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// As we've have broadcast the commitment transaction, we send
|
// As we've have broadcast the commitment transaction, we send
|
||||||
|
Loading…
Reference in New Issue
Block a user