Merge pull request #9424 from yyforyongyu/fix-gossip-ann
multi: fix inconsistent state in gossip syncer
This commit is contained in:
10 files changed
+99
-42
No files matched your search
+15
-7
@@ -813,6 +813,8 @@ func (d *AuthenticatedGossiper) stop() {
|
||||
func (d *AuthenticatedGossiper) ProcessRemoteAnnouncement(msg lnwire.Message,
|
||||
peer lnpeer.Peer) chan error {
|
||||
|
||||
log.Debugf("Processing remote msg %T from peer=%x", msg, peer.PubKey())
|
||||
|
||||
errChan := make(chan error, 1)
|
||||
|
||||
// For messages in the known set of channel series queries, we'll
|
||||
@@ -835,9 +837,13 @@ func (d *AuthenticatedGossiper) ProcessRemoteAnnouncement(msg lnwire.Message,
|
||||
|
||||
// If we've found the message target, then we'll dispatch the
|
||||
// message directly to it.
|
||||
syncer.ProcessQueryMsg(m, peer.QuitSignal())
|
||||
err := syncer.ProcessQueryMsg(m, peer.QuitSignal())
|
||||
if err != nil {
|
||||
log.Errorf("Process query msg from peer %x got %v",
|
||||
peer.PubKey(), err)
|
||||
}
|
||||
|
||||
errChan <- nil
|
||||
errChan <- err
|
||||
return errChan
|
||||
|
||||
// If a peer is updating its current update horizon, then we'll dispatch
|
||||
@@ -2382,7 +2388,8 @@ func (d *AuthenticatedGossiper) handleNodeAnnouncement(nMsg *networkMsg,
|
||||
timestamp := time.Unix(int64(nodeAnn.Timestamp), 0)
|
||||
|
||||
log.Debugf("Processing NodeAnnouncement: peer=%v, timestamp=%v, "+
|
||||
"node=%x", nMsg.peer, timestamp, nodeAnn.NodeID)
|
||||
"node=%x, source=%x", nMsg.peer, timestamp, nodeAnn.NodeID,
|
||||
nMsg.source.SerializeCompressed())
|
||||
|
||||
// We'll quickly ask the router if it already has a newer update for
|
||||
// this node so we can skip validating signatures if not required.
|
||||
@@ -2441,7 +2448,8 @@ func (d *AuthenticatedGossiper) handleNodeAnnouncement(nMsg *networkMsg,
|
||||
// TODO(roasbeef): get rid of the above
|
||||
|
||||
log.Debugf("Processed NodeAnnouncement: peer=%v, timestamp=%v, "+
|
||||
"node=%x", nMsg.peer, timestamp, nodeAnn.NodeID)
|
||||
"node=%x, source=%x", nMsg.peer, timestamp, nodeAnn.NodeID,
|
||||
nMsg.source.SerializeCompressed())
|
||||
|
||||
return announcements, true
|
||||
}
|
||||
@@ -3045,9 +3053,9 @@ func (d *AuthenticatedGossiper) handleChanUpdate(nMsg *networkMsg,
|
||||
edgeToUpdate = e2
|
||||
}
|
||||
|
||||
log.Debugf("Validating ChannelUpdate: channel=%v, from node=%x, has "+
|
||||
"edge=%v", chanInfo.ChannelID, pubKey.SerializeCompressed(),
|
||||
edgeToUpdate != nil)
|
||||
log.Debugf("Validating ChannelUpdate: channel=%v, for node=%x, has "+
|
||||
"edge policy=%v", chanInfo.ChannelID,
|
||||
pubKey.SerializeCompressed(), edgeToUpdate != nil)
|
||||
|
||||
// Validate the channel announcement with the expected public key and
|
||||
// channel capacity. In the case of an invalid channel update, we'll
|
||||
|
||||
Reference in new issue
Block a user