From 6aed70c637437b2939241a7e8a1bcaaacd09c609 Mon Sep 17 00:00:00 2001 From: Bernd Machenschalk Date: Thu, 18 Jul 2024 11:03:59 +0200 Subject: [PATCH] sched/db_purge: if a result fails to be deleted, don't purge this workunit - or the result is left orphaned n teh DB and never gets deleted --- sched/db_purge.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sched/db_purge.cpp b/sched/db_purge.cpp index a70ed839fc..36ffe9bf4c 100644 --- a/sched/db_purge.cpp +++ b/sched/db_purge.cpp @@ -588,7 +588,12 @@ int purge_and_archive_results(DB_WORKUNIT& wu, int& number_results) { ); } else { retval = result.delete_from_db(); - if (retval) return retval; + if (retval) { + log_messages.printf(MSG_CRITICAL, + "Couldn't delete result [%d] from database\n", result.id + ); + return retval; + } log_messages.printf(MSG_DEBUG, "Purged result [%lu] from database\n", result.id ); @@ -675,6 +680,10 @@ bool do_pass() { } retval = purge_and_archive_results(wu, n); + // if a result fails to be deleted, don't purge this workunit, + // or this result will be left orphaned and never get deleted + if (retval) continue; + do_pass_purged_results += n; if (!no_archive) {