From bc465326fe8eb5df6e87c7129c55a56dc017ced5 Mon Sep 17 00:00:00 2001 From: Brian Goff Date: Wed, 11 Apr 2018 21:28:29 -0400 Subject: [PATCH] networkdb: Use write lock in handleNodeEvent `handleNodeEvent` is calling `changeNodeState` which writes to various maps on the ndb object. Using a write lock prevents a panic on concurrent read/write access on these maps. Signed-off-by: Brian Goff --- libnetwork/networkdb/delegate.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libnetwork/networkdb/delegate.go b/libnetwork/networkdb/delegate.go index c308fde795..1a57de3de6 100644 --- a/libnetwork/networkdb/delegate.go +++ b/libnetwork/networkdb/delegate.go @@ -21,8 +21,8 @@ func (nDB *NetworkDB) handleNodeEvent(nEvent *NodeEvent) bool { // time. nDB.networkClock.Witness(nEvent.LTime) - nDB.RLock() - defer nDB.RUnlock() + nDB.Lock() + defer nDB.Unlock() // check if the node exists n, _, _ := nDB.findNode(nEvent.NodeName)