Skip to content

Ping logger concurrent map write #197

@corverroos

Description

@corverroos

Problem to solve

Encountered the following error running docker compose:

charon-docker-compose-node0-1       | fatal error: concurrent map writes
charon-docker-compose-node0-1       |
charon-docker-compose-node0-1       | goroutine 12 [running]:
charon-docker-compose-node0-1       | runtime.throw({0x12f0ae1, 0xc000dbbe70})
charon-docker-compose-node0-1       | 	/opt/homebrew/Cellar/go/1.17.6/libexec/src/runtime/panic.go:1198 +0x71 fp=0xc000dbbe28 sp=0xc000dbbdf8 pc=0x437051
charon-docker-compose-node0-1       | runtime.mapassign_faststr(0x102fcc0, 0xc000c75c80, {0xc000252360, 0x27})
charon-docker-compose-node0-1       | 	/opt/homebrew/Cellar/go/1.17.6/libexec/src/runtime/map_faststr.go:294 +0x38b fp=0xc000dbbe90 sp=0xc000dbbe28 pc=0x4131ab
charon-docker-compose-node0-1       | github.com/obolnetwork/charon/p2p.newPingLogger.func1({0x15a99d0, 0xc000d8e9c0}, {0xc000252360, 0x27}, {0x0, 0x0})
charon-docker-compose-node0-1       | 	/Users/corver/repos/charon/p2p/ping.go:98 +0xf3 fp=0xc000dbbf20 sp=0xc000dbbe90 pc=0xe5c373
charon-docker-compose-node0-1       | github.com/obolnetwork/charon/p2p.pingPeer({0x15a99d0, 0xc000d8e9c0}, 0xc0001a8e20, {0xc000252360, 0x27}, 0xc000d9a160, 0x0)
charon-docker-compose-node0-1       | 	/Users/corver/repos/charon/p2p/ping.go:61 +0x15d fp=0xc000dbbf98 sp=0xc000dbbf20 pc=0xe5c01d
charon-docker-compose-node0-1       | github.com/obolnetwork/charon/p2p.NewPingService.func1·dwrap·1()

Proposed Solution

Add a mutex to the stateful ping logger in charon/p2p/ping.go:82#newPingLogger

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions