From: Aleš Mrázek Date: Thu, 30 Jan 2025 10:01:01 +0000 (+0100) Subject: manager: server: handle SubprocessControllerError during init X-Git-Tag: v6.0.11~7^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d35362178fc0d3b1534e1ef5cede8c4fb08f190;p=thirdparty%2Fknot-resolver.git manager: server: handle SubprocessControllerError during init --- diff --git a/python/knot_resolver/controller/supervisord/__init__.py b/python/knot_resolver/controller/supervisord/__init__.py index ddb9b29b1..aa85fc305 100644 --- a/python/knot_resolver/controller/supervisord/__init__.py +++ b/python/knot_resolver/controller/supervisord/__init__.py @@ -53,7 +53,7 @@ async def _reload_supervisord(config: KresConfig) -> None: supervisord = _create_supervisord_proxy(config) supervisord.reloadConfig() except Fault as e: - raise SubprocessControllerError("supervisord reload failed") from e + raise SubprocessControllerError(f"supervisord reload failed: {e}") from e @async_in_a_thread diff --git a/python/knot_resolver/manager/server.py b/python/knot_resolver/manager/server.py index 06fab0cfc..879ce80e4 100644 --- a/python/knot_resolver/manager/server.py +++ b/python/knot_resolver/manager/server.py @@ -20,7 +20,7 @@ from aiohttp.web_runner import AppRunner, TCPSite, UnixSite from knot_resolver.constants import CONFIG_FILE, USER from knot_resolver.controller import get_best_controller_implementation -from knot_resolver.controller.exceptions import SubprocessControllerExecError +from knot_resolver.controller.exceptions import SubprocessControllerError, SubprocessControllerExecError from knot_resolver.controller.interface import SubprocessType from knot_resolver.controller.registered_workers import command_single_registered_worker from knot_resolver.datamodel import kres_config_json_schema @@ -611,6 +611,10 @@ async def start_server(config: Path = CONFIG_FILE) -> int: # noqa: PLR0915 # and finally exec what we were told to exec os.execl(*e.exec_args) + except SubprocessControllerError as e: + logger.error(f"Server initialization failed: {e}") + return 1 + except KresManagerException as e: # We caught an error with a pretty error message. Just print it and exit. logger.error(e)