summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2022-10-06 16:33:32 +0000
committerGerrit Code Review <review@openstack.org>2022-10-06 16:33:32 +0000
commite2318a53656d5b1e16e2c378b6e335349663c739 (patch)
tree19ca384db1781017e649950251f0443c5288619b
parent13790e244442c39aed96431e0844395261b7eadc (diff)
parente68f2bfdb3dc43540febb0874bab0bc559c5ec95 (diff)
downloadzuul-e2318a53656d5b1e16e2c378b6e335349663c739.tar.gz
Merge "Don't trace merge jobs that we don't lock"
-rw-r--r--zuul/merger/server.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/zuul/merger/server.py b/zuul/merger/server.py
index fec3df5e0..d99e5d3ee 100644
--- a/zuul/merger/server.py
+++ b/zuul/merger/server.py
@@ -208,22 +208,25 @@ class BaseMergeServer(metaclass=ABCMeta):
if not self._merger_running:
break
- with tracing.startSpanInContext(
- merge_request.span_context, "MergerJob",
- attributes={"merger": self.hostname}):
- self._runMergeJob(merge_request)
+ self._lockAndRunMergeJob(merge_request)
except Exception:
self.log.exception("Error in merge thread:")
time.sleep(5)
self.merger_loop_wake_event.set()
+ def _lockAndRunMergeJob(self, merge_request):
+ # Lock and update the merge request
+ if not self.merger_api.lock(merge_request, blocking=False):
+ return
+ with tracing.startSpanInContext(
+ merge_request.span_context, "MergerJob",
+ attributes={"merger": self.hostname}):
+ self._runMergeJob(merge_request)
+
def _runMergeJob(self, merge_request):
log = get_annotated_logger(
self.log, merge_request.event_id
)
- # Lock and update the merge request
- if not self.merger_api.lock(merge_request, blocking=False):
- return
# Ensure that the request is still in state requested. This method is
# called based on cached data and there might be a mismatch between the