Ignore exceptions when processing trigger events
Instead of aborting pipeline processing when there is an exception
processing a trigger event, we'll just log the error and continue.
This can e.g. happen with a depends-on line that references a change
that doesn't exist.
ERROR zuul.Scheduler: Exception processing pipeline check in tenant foobar
Traceback (most recent call last):
File ""/opt/zuul/lib/python3.13/site-packages/zuul/scheduler.py"", line 2394, in process_pipelines
refreshed = self._process_pipeline(
tenant, tenant_lock, manager)
File ""/opt/zuul/lib/python3.13/site-packages/zuul/scheduler.py"", line 2493, in _process_pipeline
self.process_pipeline_trigger_queue(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
tenant, tenant_lock, manager)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ""/opt/zuul/lib/python3.13/site-packages/zuul/scheduler.py"", line 2747, in process_pipeline_trigger_queue
self._process_trigger_event(tenant, manager, event)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File ""/opt/zuul/lib/python3.13/site-packages/zuul/scheduler.py"", line 2784, in _process_trigger_event
manager.addChange(change, event, debug=match_info.debug)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ""/opt/zuul/lib/python3.13/site-packages/zuul/manager/__init__.py"", line 712, in addChange
self.getDependencyGraph(change, dependency_graph, event,
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
update_deps=True)
^^^^^^^^^^^^^^^^^
File ""/opt/zuul/lib/python3.13/site-packages/zuul/manager/__init__.py"", line 980, in getDependencyGraph
self.getDependencyGraph(needed_change,
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
dependency_graph, event,
^^^^^^^^^^^^^^^^^^^^^^^^
update_deps,
^^^^^^^^^^^^
history, quiet, indent + ' ')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ""/opt/zuul/lib/python3.13/site-packages/zuul/manager/__init__.py"", line 953, in getDependencyGraph
self.updateCommitDependencies(change, event)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File ""/opt/zuul/lib/python3.13/site-packages/zuul/manager/__init__.py"", line 1162, in updateCommitDependencies
dep = source.getChangeByURLWithRetry(match, event)
File ""/opt/zuul/lib/python3.13/site-packages/zuul/source/__init__.py"", line 103, in getChangeByURLWithRetry
return self.getChangeByURL(url, event)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File ""/opt/zuul/lib/python3.13/site-packages/zuul/driver/github/githubsource.py"", line 114, in getChangeByURL
pull, pr_obj = self.connection.getPull(
~~~~~~~~~~~~~~~~~~~~~~~^
'%s/%s' % (org, proj), int(num), event=event)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ""/opt/zuul/lib/python3.13/site-packages/zuul/driver/github/githubconnection.py"", line 1952, in getPull
raise Exception(""Failed to get pull request #%s of %s/%s"" % (
number, owner, proj))
Exception: Failed to get pull request #1234 of org/project
Change-Id: I82eeb2452e1a369764b185958799c49770c04735
This commit is contained in:
@@ -2737,6 +2737,8 @@ class Scheduler(threading.Thread):
|
||||
self._doSupercedeEvent(event)
|
||||
else:
|
||||
self._process_trigger_event(tenant, manager, event)
|
||||
except Exception:
|
||||
log.exception("Failed to process trigger event %s", event)
|
||||
finally:
|
||||
self.pipeline_trigger_events[tenant.name][
|
||||
manager.pipeline.name
|
||||
|
||||
Reference in New Issue
Block a user