networkdb: fix race in deleteNetwork

There are multiple places which reads from that slice(i.e. bulkSync).

Signed-off-by: Alexander Morozov <lk4d4math@gmail.com>
This commit is contained in:
Alexander Morozov 2016-10-11 15:20:15 -07:00
parent eb02cb999b
commit c772d14e58

View file

@ -496,14 +496,14 @@ func (nDB *NetworkDB) addNetworkNode(nid string, nodeName string) {
// this
func (nDB *NetworkDB) deleteNetworkNode(nid string, nodeName string) {
nodes := nDB.networkNodes[nid]
for i, name := range nodes {
newNodes := make([]string, 0, len(nodes)-1)
for _, name := range nodes {
if name == nodeName {
nodes[i] = nodes[len(nodes)-1]
nodes = nodes[:len(nodes)-1]
break
continue
}
newNodes = append(newNodes, name)
}
nDB.networkNodes[nid] = nodes
nDB.networkNodes[nid] = newNodes
}
// findCommonnetworks find the networks that both this node and the