Skip to content

Commit 2b0ac12

Browse files
committed
Fix panic in networkdb test code
fatal error: concurrent map read and map write goroutine 264 [running]: runtime.throw(0x90043c, 0x21) /usr/local/go/src/runtime/panic.go:566 +0x95 fp=0xc4203d1d68 sp=0xc4203d1d48 runtime.mapaccess2_faststr(0x86df20, 0xc4203f5470, 0xc42044afc0, 0x5, 0xc4203d1e40, 0x4ed6b8) /usr/local/go/src/runtime/hashmap_fast.go:306 +0x52b fp=0xc4203d1dc8 sp=0xc4203d1d68 github.com/docker/libnetwork/networkdb.(*NetworkDB).verifyNodeExistence(0xc42007e160, 0xc42008a240, 0xc42044afc0, 0x5, 0x1) /go/src/github.com/docker/libnetwork/networkdb/networkdb_test.go:58 +0x6c fp=0xc4203d1e50 sp=0xc4203d1dc8 Signed-off-by: Alessandro Boch <[email protected]>
1 parent b6cb1ee commit 2b0ac12

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

networkdb/networkdb_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ func closeNetworkDBInstances(dbs []*NetworkDB) {
5555

5656
func (db *NetworkDB) verifyNodeExistence(t *testing.T, node string, present bool) {
5757
for i := 0; i < 80; i++ {
58+
db.RLock()
5859
_, ok := db.nodes[node]
60+
db.RUnlock()
5961
if present && ok {
6062
return
6163
}
@@ -72,7 +74,10 @@ func (db *NetworkDB) verifyNodeExistence(t *testing.T, node string, present bool
7274

7375
func (db *NetworkDB) verifyNetworkExistence(t *testing.T, node string, id string, present bool) {
7476
for i := 0; i < 80; i++ {
75-
if nn, nnok := db.networks[node]; nnok {
77+
db.RLock()
78+
nn, nnok := db.networks[node]
79+
db.RUnlock()
80+
if nnok {
7681
n, ok := nn[id]
7782
if present && ok {
7883
return

0 commit comments

Comments
 (0)