From 14d13749ada4c338ff5233d61da5a942f978ff00 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Fri, 2 Apr 2021 13:57:45 -0400 Subject: [PATCH] Guarantee consoleserver init before use During a restart, a client may aggressively trigger console reconnect before the consoleserver starts. Make sure that the daemon is running and globals ready before API could possible ask for console. --- confluent_server/confluent/consoleserver.py | 4 +++- confluent_server/confluent/main.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/confluent_server/confluent/consoleserver.py b/confluent_server/confluent/consoleserver.py index d9bc23e7..4f95f484 100644 --- a/confluent_server/confluent/consoleserver.py +++ b/confluent_server/confluent/consoleserver.py @@ -586,7 +586,7 @@ def _start_tenant_sessions(cfm): cfm.watch_nodecollection(_nodechange) -def start_console_sessions(): +def initialize(): global _tracelog global _bufferdaemon global _bufferlock @@ -598,6 +598,8 @@ def start_console_sessions(): fl = fcntl.fcntl(_bufferdaemon.stdout.fileno(), fcntl.F_GETFL) fcntl.fcntl(_bufferdaemon.stdout.fileno(), fcntl.F_SETFL, fl | os.O_NONBLOCK) + +def start_console_sessions(): configmodule.hook_new_configmanagers(_start_tenant_sessions) diff --git a/confluent_server/confluent/main.py b/confluent_server/confluent/main.py index 3d6cf964..1e64d654 100644 --- a/confluent_server/confluent/main.py +++ b/confluent_server/confluent/main.py @@ -260,6 +260,7 @@ def run(args): os.umask(oumask) http_bind_host, http_bind_port = _get_connector_config('http') sock_bind_host, sock_bind_port = _get_connector_config('socket') + consoleserver.initialize() webservice = httpapi.HttpApi(http_bind_host, http_bind_port) webservice.start() disco.start_detection()