diff options
author | James E. Blair <jim@acmegating.com> | 2022-10-12 11:47:17 -0700 |
---|---|---|
committer | James E. Blair <jim@acmegating.com> | 2022-10-13 10:27:58 -0700 |
commit | 4d7c026a98cb7f1caafc7ace2706c2d6c2ab40dc (patch) | |
tree | 1d56c25ee5c62545ad1cf5447579058c68e969c0 | |
parent | e11ef280e1c787299ced26cc2abf588de36b743c (diff) | |
download | zuul-4d7c026a98cb7f1caafc7ace2706c2d6c2ab40dc.tar.gz |
Add timer driver debugging
Some test failures originate due to an apscheduler thread that is
still running. Add some debugging to the timer driver to try to
help identify if there is a problem with the start/stop sequence.
Change-Id: Idcaf7ac0adfff737d88d2f42fcc4e1305bfea607
-rw-r--r-- | zuul/driver/timer/__init__.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/zuul/driver/timer/__init__.py b/zuul/driver/timer/__init__.py index f415c6012..7922cc604 100644 --- a/zuul/driver/timer/__init__.py +++ b/zuul/driver/timer/__init__.py @@ -39,6 +39,7 @@ class TimerDriver(Driver, TriggerInterface): tracer = trace.get_tracer("zuul") def __init__(self): + self.log.debug("Starting apscheduler") self.apsched = BackgroundScheduler() self.apsched.start() self.tenant_jobs = {} @@ -62,12 +63,14 @@ class TimerDriver(Driver, TriggerInterface): self.election_thread.start() def _runElection(self): + self.log.debug("Starting timer election loop") while not self.stopped: try: self.log.info("Running timer election") self.election.run(self._electionInner) except Exception: self.log.exception("Error in timer election:") + self.log.debug("Exiting timer election loop") def _electionInner(self): try: @@ -77,6 +80,7 @@ class TimerDriver(Driver, TriggerInterface): finally: self.election_won = False self.stop_event.clear() + self.log.debug("Timer election tenure ended") def reconfigure(self, tenant): self._removeJobs(tenant) @@ -84,6 +88,7 @@ class TimerDriver(Driver, TriggerInterface): return if not self.apsched: # Handle possible reuse of the driver without connection objects. + self.log.debug("Starting apscheduler on reconfigure") self.apsched = BackgroundScheduler() self.apsched.start() self._addJobs(tenant) @@ -222,15 +227,23 @@ class TimerDriver(Driver, TriggerInterface): tenant, project_name, branch) def stop(self): + self.log.debug("Stopping timer driver") self.stopped = True self.stop_event.set() if self.apsched: + self.log.debug("Stopping apscheduler") self.apsched.shutdown() self.apsched = None + self.log.debug("Stopped apscheduler") if self.election: + self.log.debug("Stopping election") self.election.cancel() + self.log.debug("Stopped election") if self.election_thread: + self.log.debug("Stopping election thread") self.election_thread.join() + self.log.debug("Stopped election thread") + self.log.debug("Stopped timer driver") def getTrigger(self, connection_name, config=None): return timertrigger.TimerTrigger(self, config) |