Open BurtonQin opened 4 years ago
Similar to #11766,
block_hash()
numbers.read()
numbers.write()
chain_info()
difficulty.read()
first_block.read()
ancient_block.read()
Similar to #11766,
block_hash()
, the twonumbers.read()
may be interleaved bynumbers.write()
from another thread. https://github.com/openethereum/openethereum/blob/f8cbdadfaaef30febbeab1ec5b7331a74ec7856a/ethcore/src/test_helpers/test_client.rs#L360 The fix is to use onenumbers.read()
instead of two.chain_info()
, the twodifficulty.read()
(first_block.read()
,ancient_block.read()
) may be interleaved by their corresponding write lock from another thread. https://github.com/openethereum/openethereum/blob/f8cbdadfaaef30febbeab1ec5b7331a74ec7856a/ethcore/src/test_helpers/test_client.rs#L491-L502 I lift the read locks and order them as they are declared. Currently, no conflicting lock order is found.