-
Notifications
You must be signed in to change notification settings - Fork 586
Data race on ethPeer field between doWitnessRequest writer and RequestWitnesses reader #1729
Copy link
Copy link
Closed
Description
Concurrent access to ethPeer field at 0x00c000f37f68. Write occurs in doWitnessRequest (peer.go:454) while read happens in RequestWitnesses (peer.go:200). Race between goroutines spawned by witnessManager during witness fetching operations.
==================
WARNING: DATA RACE
Write at 0x00c000f37f68 by goroutine 268:
github.com/ethereum/go-ethereum/eth.(*ethPeer).doWitnessRequest()
/var/lib/bor/eth/peer.go:454 +0x884
github.com/ethereum/go-ethereum/eth.(*ethPeer).buildWitnessRequests()
/var/lib/bor/eth/peer.go:385 +0x649
github.com/ethereum/go-ethereum/eth.(*ethPeer).RequestWitnesses.func1()
/var/lib/bor/eth/peer.go:180 +0x130
Previous read at 0x00c000f37f68 by goroutine 267:
github.com/ethereum/go-ethereum/eth.(*ethPeer).RequestWitnesses()
/var/lib/bor/eth/peer.go:200 +0x9c4
github.com/ethereum/go-ethereum/eth.(*ethHandler).handleBlockBroadcast.func1()
/var/lib/bor/eth/handler_eth.go:162 +0xc9
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).fetchWitness()
/var/lib/bor/eth/fetcher/witness_manager.go:522 +0x130
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).tick.gowrap1()
/var/lib/bor/eth/fetcher/witness_manager.go:507 +0xaa
Goroutine 268 (running) created at:
github.com/ethereum/go-ethereum/eth.(*ethPeer).RequestWitnesses()
/var/lib/bor/eth/peer.go:179 +0x73c
github.com/ethereum/go-ethereum/eth.(*ethHandler).handleBlockBroadcast.func1()
/var/lib/bor/eth/handler_eth.go:162 +0xc9
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).fetchWitness()
/var/lib/bor/eth/fetcher/witness_manager.go:522 +0x130
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).tick.gowrap1()
/var/lib/bor/eth/fetcher/witness_manager.go:507 +0xaa
Goroutine 267 (running) created at:
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).tick()
/var/lib/bor/eth/fetcher/witness_manager.go:507 +0x25a4
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).loop()
/var/lib/bor/eth/fetcher/witness_manager.go:216 +0xc9b
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).start.gowrap2()
/var/lib/bor/eth/fetcher/witness_manager.go:142 +0x33
==================
INFO [08-28|00:45:09.578] Whitelisting milestone deferred err="chain out of sync"
{
"IPT_bytes_out": 16994920,
"output_text": "WARNING: DATA RACE",
"source": {
"container": "l2-el-4-bor-heimdall-v2-rpc--b97cb9deb4cc4b4fbfd625abd50535e6",
"name": "l2-el-4-bor-heimdall-v2-rpc--b97cb9deb4cc4b4fbfd625abd50535e6",
"stream": "error"
},
"moment": {
"input_hash": "5474484343311274565",
"_vtime_ticks": 657727462115,
"session_id": "c0ceefcd588ee0d629772f6fd9eae1ec-36-12"
}
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels