-
Notifications
You must be signed in to change notification settings - Fork 586
Data race on witnessManager field between fetchWitness reader and handleWitnessFetchFailureExt writer #1736
Copy link
Copy link
Closed
Description
Concurrent access to witnessManager field at 0x00c0008fdf40. Read occurs in fetchWitness (witness_manager.go:519) while write happens in handleWitnessFetchFailureExt (witness_manager.go:686) during witness fetch failure handling. Race between concurrent witness fetching goroutines spawned by tick function.
INFO [08-28|00:51:56.134] Block building interrupted due to timeout block=287
INFO [08-28|00:51:56.262] [wm] Witness fetch timed out for peer peer=200888157a5302c384651a4fa831f4e702f374abf14d8005e21dc6d17d84dfcc hash=11f607..f4453e
INFO [08-28|00:51:56.262] [wm] Witness fetch timed out for peer peer=200888157a5302c384651a4fa831f4e702f374abf14d8005e21dc6d17d84dfcc hash=1e508e..97063f
==================
WARNING: DATA RACE
Read at 0x00c0008fdf40 by goroutine 6647:
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).fetchWitness()
/var/lib/bor/eth/fetcher/witness_manager.go:519 +0x77
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).tick.gowrap1()
/var/lib/bor/eth/fetcher/witness_manager.go:507 +0xaa
Previous write at 0x00c0008fdf40 by goroutine 6535:
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).handleWitnessFetchFailureExt()
/var/lib/bor/eth/fetcher/witness_manager.go:686 +0x445
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).fetchWitness()
/var/lib/bor/eth/fetcher/witness_manager.go:589 +0x1596
github.com/ethereum/go-ethereum/eth/fetcher.(*witnessManager).tick.gowrap1()
/var/lib/bor/eth/fetcher/witness_manager.go:507 +0xaa
Goroutine 6647 (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
Goroutine 6535 (finished) 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:51:56.268] Block building interrupted due to timeout block=280
{
"IPT_bytes_out": 42077696,
"output_text": "WARNING: DATA RACE",
"source": {
"container": "l2-el-4-bor-heimdall-v2-rpc--f059a1d731684b068b81d6afaf29880b",
"name": "l2-el-4-bor-heimdall-v2-rpc--f059a1d731684b068b81d6afaf29880b",
"stream": "error"
},
"moment": {
"input_hash": "-2012047140897733835",
"_vtime_ticks": 2406464272233,
"session_id": "c0ceefcd588ee0d629772f6fd9eae1ec-36-12"
}
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels