Wrap stopping podman -t with systemd timeouts
Currently with KillMode=none, if podman -t hangs, the command repeats
leaving the process and its cgroup around.
But if a stop/start command hangs, we should not start another one.
Instead time it out properly via TimeoutStopSec set to the 2x of
the timeout given to the managed podman action. Then if it expires,
kill its cgroup all the way (KillMode=control-group is a default)
before rerunning the same operation. Also note that using KilMode
process is not recommended by systemd man pages.
Increase the grace stop timeout defaults 10->42s to align it with:
https://github.com/containers/podman/pull/8889
Closes-bug: #1945791
Change-Id: Iefe861f91cefe2a9cf773cae98b2440566ae8b5e
Signed-off-by: Bogdan Dobrelya <bdobreli@redhat.com>
(cherry picked from commit badd5a3c10
)
This commit is contained in:
parent
810fb36e3b
commit
3670032a43
|
@ -13,10 +13,10 @@ ExecReload=/usr/bin/podman kill --signal HUP {{ lookup('dict', container_data_un
|
||||||
{% if lookup('dict', container_data_unit).value.pre_stop_exec is defined %}
|
{% if lookup('dict', container_data_unit).value.pre_stop_exec is defined %}
|
||||||
ExecStop=-/usr/bin/podman exec {{ lookup('dict', container_data_unit).key }} {{ lookup('dict', container_data_unit).value.pre_stop_exec }}
|
ExecStop=-/usr/bin/podman exec {{ lookup('dict', container_data_unit).key }} {{ lookup('dict', container_data_unit).value.pre_stop_exec }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
ExecStop=/usr/bin/podman stop -t {{ lookup('dict', container_data_unit).value.stop_grace_period | default(10) | int }} {{ lookup('dict', container_data_unit).key }}
|
ExecStop=/usr/bin/podman stop -t {{ lookup('dict', container_data_unit).value.stop_grace_period | default(42) | int }} {{ lookup('dict', container_data_unit).key }}
|
||||||
ExecStopPost=/usr/bin/podman stop -t {{ lookup('dict', container_data_unit).value.stop_grace_period | default(10) | int }} {{ lookup('dict', container_data_unit).key }}
|
ExecStopPost=/usr/bin/podman stop -t {{ lookup('dict', container_data_unit).value.stop_grace_period | default(42) | int }} {{ lookup('dict', container_data_unit).key }}
|
||||||
SuccessExitStatus=137 142 143
|
SuccessExitStatus=137 142 143
|
||||||
KillMode=none
|
TimeoutStopSec={{ 2*lookup('dict', container_data_unit).value.stop_grace_period | default(42) | int }}
|
||||||
Type=forking
|
Type=forking
|
||||||
PIDFile=/var/run/{{ lookup('dict', container_data_unit).key }}.pid
|
PIDFile=/var/run/{{ lookup('dict', container_data_unit).key }}.pid
|
||||||
{% if lookup('dict', container_data_unit).value.systemd_exec_flags is defined %}
|
{% if lookup('dict', container_data_unit).value.systemd_exec_flags is defined %}
|
||||||
|
|
Loading…
Reference in New Issue