d06dc6c8a6
cluster_nodes and last_peer_update are not shared between retransmit threads, as each thread have its own value: https://github.com/solana-labs/solana/blob/65ccfed86/core/src/retransmit_stage.rs#L476-L477 Additionally, with shared references, this code: https://github.com/solana-labs/solana/blob/0167daa11/core/src/retransmit_stage.rs#L315-L328 has a concurrency bug where the thread which does compare_and_swap, updates cluster_nodes much later after other threads have run with outdated cluster_nodes for a while. In particular, the write-lock there may block. |
||
---|---|---|
.. | ||
banking_stage.rs | ||
blockstore.rs | ||
cluster_info.rs | ||
consensus.rs | ||
gen_keys.rs | ||
retransmit_stage.rs | ||
shredder.rs | ||
sigverify_stage.rs |