From ff70b3afa9e5ffbe65c07fff08a0afc94e0a0e71 Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Mon, 12 Sep 2016 19:04:08 -0700 Subject: [PATCH] lnd: avoid wiping a channel twice --- peer.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/peer.go b/peer.go index 9a97d26a..c9a81ae6 100644 --- a/peer.go +++ b/peer.go @@ -823,7 +823,11 @@ func wipeChannel(p *peer, channel *lnwallet.LightningChannel) error { // Instruct the Htlc Switch to close this link as the channel is no // longer active. p.server.htlcSwitch.UnregisterLink(p.lightningID, chanID) - htlcWireLink := p.htlcManagers[*chanID] + htlcWireLink, ok := p.htlcManagers[*chanID] + if !ok { + return nil + } + delete(p.htlcManagers, *chanID) close(htlcWireLink) @@ -925,6 +929,7 @@ out: for { select { case <-channel.UnilateralCloseSignal: + // TODO(roasbeef): eliminate false positive via local close peerLog.Warnf("Remote peer has closed ChannelPoint(%v) on-chain", state.chanPoint) if err := wipeChannel(p, channel); err != nil {