From cb173b8e939d63821a966d0d76b299f20742c619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 7 Aug 2025 14:14:28 -0700 Subject: [PATCH] test: use local `CBlockIndex` in block read hash mismatch test to avoid data race Co-authored-by: stickies-v --- src/test/blockmanager_tests.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/test/blockmanager_tests.cpp b/src/test/blockmanager_tests.cpp index d3b58143719..f06665d3055 100644 --- a/src/test/blockmanager_tests.cpp +++ b/src/test/blockmanager_tests.cpp @@ -139,12 +139,18 @@ BOOST_FIXTURE_TEST_CASE(blockmanager_block_data_availability, TestChain100Setup) BOOST_FIXTURE_TEST_CASE(blockmanager_readblock_hash_mismatch, TestingSetup) { - CBlockIndex* fake_index{WITH_LOCK(m_node.chainman->GetMutex(), return m_node.chainman->ActiveChain().Tip())}; - fake_index->phashBlock = &uint256::ONE; // invalid block hash + CBlockIndex index; + { + LOCK(cs_main); + const auto tip{m_node.chainman->ActiveTip()}; + index.nStatus = tip->nStatus; + index.nDataPos = tip->nDataPos; + index.phashBlock = &uint256::ONE; // mismatched block hash + } ASSERT_DEBUG_LOG("GetHash() doesn't match index"); - CBlock dummy; - BOOST_CHECK(!m_node.chainman->m_blockman.ReadBlock(dummy, *fake_index)); + CBlock block; + BOOST_CHECK(!m_node.chainman->m_blockman.ReadBlock(block, index)); } BOOST_AUTO_TEST_CASE(blockmanager_flush_block_file)