From f09e1a3667c27ac8b22e7defaff2dd2a1ec4d1b2 Mon Sep 17 00:00:00 2001 From: Vincent Pelletier <vincent@nexedi.com> Date: Thu, 14 Jan 2021 15:01:52 +0900 Subject: [PATCH] CMFActivity.Activity.SQLBase: Properly release reserved messages when load raises. Seen happen on SQLDict with 94 indexation activities being stuck assigned to a processing node on which load failed because of an SQL deadlock. --- product/CMFActivity/Activity/SQLBase.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/product/CMFActivity/Activity/SQLBase.py b/product/CMFActivity/Activity/SQLBase.py index 85535e4118..1317bef9db 100644 --- a/product/CMFActivity/Activity/SQLBase.py +++ b/product/CMFActivity/Activity/SQLBase.py @@ -550,6 +550,9 @@ CREATE TABLE %s ( 1, node_set=node_family_id_list) if not result: break + # So reserved documents are properly released even if load raises. + for line in result: + uid_to_duplicate_uid_list_dict[line.uid] = [] load = self.getProcessableMessageLoader(db, processing_node) m, uid, uid_list = load(result[0]) message_list = [m] -- 2.30.9