From a8fb6c952d77cc65a23af1e824c411ad2ef04a34 Mon Sep 17 00:00:00 2001 From: Mike McLean Date: May 06 2019 14:23:15 +0000 Subject: rollback errors in multiCall Fixes: https://pagure.io/koji/issue/1357 --- diff --git a/hub/kojixmlrpc.py b/hub/kojixmlrpc.py index 08a344b..18b11ec 100644 --- a/hub/kojixmlrpc.py +++ b/hub/kojixmlrpc.py @@ -329,11 +329,14 @@ class ModXMLRPCRequestHandler(object): results and errors, and return those as a list.""" results = [] for call in calls: + savepoint = kojihub.Savepoint('multiCall_loop') try: result = self._dispatch(call['methodName'], call['params']) except Fault as fault: + savepoint.rollback() results.append({'faultCode': fault.faultCode, 'faultString': fault.faultString}) - except: + except Exception: + savepoint.rollback() # transform unknown exceptions into XML-RPC Faults # don't create a reference to full traceback since this creates # a circular reference.