From 595de8ed7f2d83dd9e5efc0faf3d06e995dfbf07 Mon Sep 17 00:00:00 2001 From: Sanne Raymaekers Date: Fri, 1 Jul 2022 20:01:35 +0200 Subject: [PATCH] containers/osbuild-composer: Allow shutdown wait period Openshift keeps sending requests to composer for a while after it has sent SIGTERM, this results in requests being reset randomly on shutdown. Waiting a few seconds before terminating mitigates this. --- containers/osbuild-composer/entrypoint.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/containers/osbuild-composer/entrypoint.py b/containers/osbuild-composer/entrypoint.py index 1cf7d8622..f38e0f242 100644 --- a/containers/osbuild-composer/entrypoint.py +++ b/containers/osbuild-composer/entrypoint.py @@ -14,6 +14,7 @@ import signal import socket import subprocess import sys +import time class Cli(contextlib.AbstractContextManager): @@ -34,6 +35,14 @@ class Cli(contextlib.AbstractContextManager): prog="container/osbuild-composer", ) + self._parser.add_argument( + "--shutdown-wait-period", + type=int, + default=0, + dest="shutdown_wait_period", + help="Wait period in seconds before terminating child processes", + ) + # --[no-]composer-api self._parser.add_argument( "--composer-api", @@ -325,6 +334,8 @@ class Cli(contextlib.AbstractContextManager): sockets = self._prepare_sockets() def handler(signum, frame): + if self.args.shutdown_wait_period: + time.sleep(self.args.shutdown_wait_period) proc_composer.terminate() proc_worker.terminate() proc_dnf_json.terminate()