diff options
author | Vasil Dimov <vd@FreeBSD.org> | 2022-09-27 18:02:22 +0200 |
---|---|---|
committer | Vasil Dimov <vd@FreeBSD.org> | 2022-10-11 09:45:54 +0200 |
commit | 6526dc3b78d9ca2b5c67564b04dcacbc75b857e1 (patch) | |
tree | 957fc461afe31d9613bd4328285ab4f2a3d0da60 /src/test/coinstatsindex_tests.cpp | |
parent | 2e77dff7449af6b46b284c75ce6e1d53a134bc8e (diff) |
test: silence TSAN false positive in coinstatsindex_initial_sync
Fixes https://github.com/bitcoin/bitcoin/issues/25365
Diffstat (limited to 'src/test/coinstatsindex_tests.cpp')
-rw-r--r-- | src/test/coinstatsindex_tests.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/test/coinstatsindex_tests.cpp b/src/test/coinstatsindex_tests.cpp index 2a6a777cfe..8a2b0792fd 100644 --- a/src/test/coinstatsindex_tests.cpp +++ b/src/test/coinstatsindex_tests.cpp @@ -76,10 +76,16 @@ BOOST_FIXTURE_TEST_CASE(coinstatsindex_initial_sync, TestChain100Setup) BOOST_CHECK(block_index != new_block_index); + // It is not safe to stop and destroy the index until it finishes handling + // the last BlockConnected notification. The BlockUntilSyncedToCurrentChain() + // call above is sufficient to ensure this, but the + // SyncWithValidationInterfaceQueue() call below is also needed to ensure + // TSAN always sees the test thread waiting for the notification thread, and + // avoid potential false positive reports. + SyncWithValidationInterfaceQueue(); + // Shutdown sequence (c.f. Shutdown() in init.cpp) coin_stats_index.Stop(); - - // Rest of shutdown sequence and destructors happen in ~TestingSetup() } // Test shutdown between BlockConnected and ChainStateFlushed notifications, |