From fa4fb6a8f15c295a2a3d3ffd737e115b8be46c1f Mon Sep 17 00:00:00 2001 From: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz> Date: Tue, 11 Feb 2025 14:51:23 +0100 Subject: [PATCH] fuzz: Use serial task runner to increase fuzz stability --- src/test/util/setup_common.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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{};