From 95e3d6fdac3bda8723f10c6d565854c5a9a5bb73 Mon Sep 17 00:00:00 2001 From: Tobias Henkel Date: Wed, 24 Jan 2018 16:47:34 +0100 Subject: [PATCH] Fix runtime stats reporting for noop job The noop job currently tries to report runtime stats before adding it to the buildset which triggers an exception [1]. Fix that by adding the build to the buildset earlier. [1] Trace: 2018-01-24 15:50:09,533 ERROR zuul.Scheduler: Exception reporting runtime stats Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/zuul/scheduler.py", line 374, in onBuildCompleted if self.statsd and build.pipeline: File "/usr/lib/python3.6/site-packages/zuul/model.py", line 1266, in pipeline return self.build_set.item.pipeline AttributeError: 'NoneType' object has no attribute 'item'. Change-Id: I88e9fd1c7623760be23597c82ebfb09faef54afb --- zuul/executor/client.py | 4 ++++ zuul/manager/__init__.py | 5 +---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/zuul/executor/client.py b/zuul/executor/client.py index b21a290d5a..fff0ed97d2 100644 --- a/zuul/executor/client.py +++ b/zuul/executor/client.py @@ -273,6 +273,10 @@ class ExecutorClient(object): build.parameters = params build.nodeset = nodeset + self.log.debug("Adding build %s of job %s to item %s" % + (build, job, item)) + item.addBuild(build) + if job.name == 'noop': self.sched.onBuildStarted(build) self.sched.onBuildCompleted(build, 'SUCCESS', {}) diff --git a/zuul/manager/__init__.py b/zuul/manager/__init__.py index 88ddf7d144..33fc3a86cd 100644 --- a/zuul/manager/__init__.py +++ b/zuul/manager/__init__.py @@ -392,13 +392,10 @@ class PipelineManager(object): try: nodeset = item.current_build_set.getJobNodeSet(job.name) self.sched.nodepool.useNodeSet(nodeset) - build = self.sched.executor.execute( + self.sched.executor.execute( job, item, self.pipeline, build_set.dependent_changes, build_set.merger_items) - self.log.debug("Adding build %s of job %s to item %s" % - (build, job, item)) - item.addBuild(build) except Exception: self.log.exception("Exception while executing job %s " "for change %s:" % (job, item.change))