From 336dab1eecc5f2b9adfe69a56d74cf13df36de8a Mon Sep 17 00:00:00 2001 From: Dario Mirovic Date: Wed, 15 Apr 2026 15:19:10 +0200 Subject: [PATCH] test: lib: fix broken retry in start_docker_service The retry loop in start_docker_service passes the parse callbacks via std::move into create_handler on each iteration. After the first iteration, the moved-from std::function objects are empty. All subsequent retries skip output parsing entirely and immediately treat the service as successfully started. This defeats the entire purpose of the retry mechanism. Fix by passing the callbacks by copy instead of move, so the original callbacks remain valid across retries. Fixes SCYLLADB-1542 --- test/lib/proc_utils.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/lib/proc_utils.cc b/test/lib/proc_utils.cc index cea0a09439..51388138d8 100644 --- a/test/lib/proc_utils.cc +++ b/test/lib/proc_utils.cc @@ -253,8 +253,8 @@ future> tests::proc::start_docker_ return std::make_tuple(std::move(h), std::move(f)); }; - auto [out_h, out_fut] = create_handler(std::move(stdout_parse), std::cout); - auto [err_h, err_fut] = create_handler(std::move(stderr_parse), std::cerr); + auto [out_h, out_fut] = create_handler(stdout_parse, std::cout); + auto [err_h, err_fut] = create_handler(stderr_parse, std::cerr); auto ps = co_await process_fixture::create(exec , params