summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames E. Blair <jim@acmegating.com>2022-10-12 11:47:17 -0700
committerJames E. Blair <jim@acmegating.com>2022-10-13 10:27:58 -0700
commit4d7c026a98cb7f1caafc7ace2706c2d6c2ab40dc (patch)
tree1d56c25ee5c62545ad1cf5447579058c68e969c0
parente11ef280e1c787299ced26cc2abf588de36b743c (diff)
downloadzuul-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__.py13
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)