From 98095cf4f8055e32ef91cf1be282b0dcb809bfa0 Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Thu, 2 Feb 2017 14:13:03 -0800 Subject: [PATCH] Avoid multiple build cancelations The cancelJobs method can be called multiple times for an item (but with prime=False). It was possible for zuul to emit multiple stop jobs in that case. To avoid that, only cancel builds which have not yet reported a result. Change-Id: I1aec01396fcd317cfe8446c582abdc1e3a933410 --- zuul/manager/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zuul/manager/__init__.py b/zuul/manager/__init__.py index 4ae7f35a2a..7ee1040535 100644 --- a/zuul/manager/__init__.py +++ b/zuul/manager/__init__.py @@ -398,6 +398,9 @@ class PipelineManager(object): old_build_set.node_requests = {} canceled_jobs = set() for build in old_build_set.getBuilds(): + if build.result: + canceled_jobs.add(build.job.name) + continue was_running = False try: was_running = self.sched.launcher.cancel(build)