From 390f8df4ad03e69ab34e5fb3c6f92e3244ab77e9 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Wed, 25 Feb 2015 12:19:21 -0500 Subject: [PATCH] Make sure the build manager dies on an unhandled schedule exception --- buildman/enums.py | 1 + buildman/server.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/buildman/enums.py b/buildman/enums.py index 3d38217fe..2a5cb1978 100644 --- a/buildman/enums.py +++ b/buildman/enums.py @@ -10,3 +10,4 @@ class BuildServerStatus(object): STARTING = 'starting' RUNNING = 'running' SHUTDOWN = 'shutting_down' + EXCEPTION = 'exception' diff --git a/buildman/server.py b/buildman/server.py index bad1d84f8..6b55fc2b1 100644 --- a/buildman/server.py +++ b/buildman/server.py @@ -180,7 +180,8 @@ class BuilderServer(object): scheduled = yield From(self._lifecycle_manager.schedule(build_job)) except: logger.exception('Exception when scheduling job') - scheduled = None + self._current_status = BuildServerStatus.EXCEPTION + return if scheduled: status_handler = StatusHandler(self._build_logs, build_job.repo_build.uuid) @@ -196,6 +197,7 @@ class BuilderServer(object): def _queue_metrics_updater(self): while self._current_status == BuildServerStatus.RUNNING: yield From(trollius.sleep(30)) + logger.debug('Writing metrics') self._queue.update_metrics() @trollius.coroutine