Merge pull request #148 from JulienVdG/sync-not-ready

RFC: Remove syncNodes/syncPeers 'not Ready' special case
This commit is contained in:
Lucas Servén Marín 2021-04-21 19:49:12 +02:00 committed by GitHub
commit 166094b5ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -274,14 +274,10 @@ func (m *Mesh) syncNodes(e *NodeEvent) {
var diff bool var diff bool
m.mu.Lock() m.mu.Lock()
if !e.Node.Ready() { if !e.Node.Ready() {
level.Debug(logger).Log("msg", "received incomplete node", "node", e.Node) // Trace non ready nodes with their presence in the mesh.
// An existing node is no longer valid _, ok := m.nodes[e.Node.Name]
// so remove it from the mesh. level.Debug(logger).Log("msg", "received non ready node", "node", e.Node, "in-mesh", ok)
if _, ok := m.nodes[e.Node.Name]; ok {
level.Info(logger).Log("msg", "node is no longer ready", "node", e.Node)
diff = true
} }
} else {
switch e.Type { switch e.Type {
case AddEvent: case AddEvent:
fallthrough fallthrough
@ -296,7 +292,6 @@ func (m *Mesh) syncNodes(e *NodeEvent) {
delete(m.nodes, e.Node.Name) delete(m.nodes, e.Node.Name)
diff = true diff = true
} }
}
m.mu.Unlock() m.mu.Unlock()
if diff { if diff {
level.Info(logger).Log("node", e.Node) level.Info(logger).Log("node", e.Node)
@ -312,14 +307,10 @@ func (m *Mesh) syncPeers(e *PeerEvent) {
// Peers are indexed by public key. // Peers are indexed by public key.
key := string(e.Peer.PublicKey) key := string(e.Peer.PublicKey)
if !e.Peer.Ready() { if !e.Peer.Ready() {
level.Debug(logger).Log("msg", "received incomplete peer", "peer", e.Peer) // Trace non ready peer with their presence in the mesh.
// An existing peer is no longer valid _, ok := m.peers[key]
// so remove it from the mesh. level.Debug(logger).Log("msg", "received non ready peer", "peer", e.Peer, "in-mesh", ok)
if _, ok := m.peers[key]; ok {
level.Info(logger).Log("msg", "peer is no longer ready", "peer", e.Peer)
diff = true
} }
} else {
switch e.Type { switch e.Type {
case AddEvent: case AddEvent:
fallthrough fallthrough
@ -336,7 +327,6 @@ func (m *Mesh) syncPeers(e *PeerEvent) {
delete(m.peers, key) delete(m.peers, key)
diff = true diff = true
} }
}
m.mu.Unlock() m.mu.Unlock()
if diff { if diff {
level.Info(logger).Log("peer", e.Peer) level.Info(logger).Log("peer", e.Peer)