Ensure command_socket is last thing to close

This updates all services to how zuul-scheduler works, we close the
command_socket at the last possible moment. This also means we can now
use the command socket on the filesystem as an idicator that zuul
properly shutdown.

Change-Id: I5fe1bc96c87e1177a2b94d73a9cbe505a7807202
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This commit is contained in:
Paul Belanger 2019-01-07 10:19:48 -05:00
parent 8f4f827ed3
commit 47aa6b12b2
3 changed files with 10 additions and 9 deletions

View File

@ -2313,7 +2313,6 @@ class ExecutorServer(object):
self._running = False
self._command_running = False
workers = list(self.job_workers.values())
self.command_socket.stop()
for job_worker in workers:
try:
@ -2344,6 +2343,7 @@ class ExecutorServer(object):
self.statsd.gauge(base_key + '.pct_used_ram', 0)
self.statsd.gauge(base_key + '.running_builds', 0)
self.command_socket.stop()
self.log.debug("Stopped")
def join(self):

View File

@ -184,13 +184,6 @@ class FingerGateway(object):
self.log.info("Finger gateway is started")
def stop(self):
if self.command_socket:
self.command_running = False
try:
self.command_socket.stop()
except Exception:
self.log.exception("Error stopping command socket:")
if self.server:
try:
self.server.shutdown()
@ -206,6 +199,14 @@ class FingerGateway(object):
except Exception:
self.log.exception("Error stopping RCP client:")
if self.command_socket:
self.command_running = False
try:
self.command_socket.stop()
except Exception:
self.log.exception("Error stopping command socket:")
self.log.info("Finger gateway is stopped")
def wait(self):

View File

@ -87,8 +87,8 @@ class MergeServer(object):
self.log.debug("Stopping")
self._running = False
self._command_running = False
self.command_socket.stop()
self.worker.shutdown()
self.command_socket.stop()
self.log.debug("Stopped")
def join(self):