diff --git a/src/test/util/setup_common.cpp b/src/test/util/setup_common.cpp index 083ba3bd6d8..5d723a2c468 100644 --- a/src/test/util/setup_common.cpp +++ b/src/test/util/setup_common.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -220,12 +221,15 @@ ChainTestingSetup::ChainTestingSetup(const ChainType chainType, TestOpts opts) { const CChainParams& chainparams = Params(); - // We have to run a scheduler thread to prevent ActivateBestChain + // A task runner is required to prevent ActivateBestChain // from blocking due to queue overrun. if (opts.setup_validation_interface) { m_node.scheduler = std::make_unique(); m_node.scheduler->m_service_thread = std::thread(util::TraceThread, "scheduler", [&] { m_node.scheduler->serviceQueue(); }); - m_node.validation_signals = std::make_unique(std::make_unique(*m_node.scheduler)); + m_node.validation_signals = + // Use synchronous task runner while fuzzing to avoid non-determinism + G_FUZZING ? std::make_unique(std::make_unique()) : + std::make_unique(std::make_unique(*m_node.scheduler)); } bilingual_str error{};