parent
63c3effc46
commit
077e5398c1
@ -0,0 +1,43 @@
|
|||||||
|
From 2ab2c832180dacb2e66d38541beae0957416eb96 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Antonio Romito <aromito@redhat.com>
|
||||||
|
Date: Mon, 9 Sep 2024 17:30:38 +0200
|
||||||
|
Subject: [PATCH] Improve handling of "stopping" container removal in
|
||||||
|
remove_container()
|
||||||
|
|
||||||
|
- Added handling for containers in a stopping state by checking the state and force-removing if necessary.
|
||||||
|
- Improved log messages to provide clearer information when force removal is needed.
|
||||||
|
|
||||||
|
Related: https://issues.redhat.com/browse/RHEL-58008
|
||||||
|
---
|
||||||
|
heartbeat/podman | 11 +++++++++--
|
||||||
|
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/heartbeat/podman b/heartbeat/podman
|
||||||
|
index 53867bff20..643ec4d894 100755
|
||||||
|
--- a/heartbeat/podman
|
||||||
|
+++ b/heartbeat/podman
|
||||||
|
@@ -254,6 +254,13 @@ remove_container()
|
||||||
|
ocf_run podman rm -v $CONTAINER
|
||||||
|
rc=$?
|
||||||
|
if [ $rc -ne 0 ]; then
|
||||||
|
+ if [ $rc -eq 2 ]; then
|
||||||
|
+ if podman inspect --format '{{.State.Status}}' $CONTAINER | grep -wq "stopping"; then
|
||||||
|
+ ocf_log err "Inactive container ${CONTAINER} is stuck in 'stopping' state. Force-remove it."
|
||||||
|
+ ocf_run podman rm -f $CONTAINER
|
||||||
|
+ rc=$?
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
# due to a podman bug (rhbz#1841485), sometimes a stopped
|
||||||
|
# container can still be associated with Exec sessions, in
|
||||||
|
# which case the "podman rm" has to be forced
|
||||||
|
@@ -517,8 +524,8 @@ podman_stop()
|
||||||
|
# but the associated container exit code is -1. If that's the case,
|
||||||
|
# assume there's no failure and continue with the rm as usual.
|
||||||
|
if [ $rc -eq 125 ] && \
|
||||||
|
- podman inspect --format '{{.State.Status}}:{{.State.ExitCode}}' $CONTAINER | grep -wq "stopped:-1"; then
|
||||||
|
- ocf_log warn "Container ${CONTAINER} had an unexpected stop outcome. Trying to remove it anyway."
|
||||||
|
+ podman inspect --format '{{.State.Status}}:{{.State.ExitCode}}' $CONTAINER | grep -Eq '^(exited|stopped):-1$'; then
|
||||||
|
+ ocf_log err "Container ${CONTAINER} had an unexpected stop outcome. Trying to remove it anyway."
|
||||||
|
else
|
||||||
|
ocf_exit_reason "Failed to stop container, ${CONTAINER}, based on image, ${OCF_RESKEY_image}."
|
||||||
|
return $OCF_ERR_GENERIC
|
@ -0,0 +1,44 @@
|
|||||||
|
From d89b3fb29033c3a60eb0896033af5981c7b9f64a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
|
||||||
|
Date: Fri, 10 Jan 2025 11:39:48 +0100
|
||||||
|
Subject: [PATCH] openstack-cinder-volume: fix detach not working during
|
||||||
|
start-action after #2000
|
||||||
|
|
||||||
|
---
|
||||||
|
heartbeat/openstack-cinder-volume | 8 ++++----
|
||||||
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/heartbeat/openstack-cinder-volume b/heartbeat/openstack-cinder-volume
|
||||||
|
index 2b64d4d88..5bb1acddd 100755
|
||||||
|
--- a/heartbeat/openstack-cinder-volume
|
||||||
|
+++ b/heartbeat/openstack-cinder-volume
|
||||||
|
@@ -142,9 +142,9 @@ osvol_monitor() {
|
||||||
|
node_id=$(_get_node_id)
|
||||||
|
|
||||||
|
if ocf_is_true $OCF_RESKEY_volume_local_check ; then
|
||||||
|
- if [ "$__OCF_ACTION" = "monitor" ] || [ "$__OCF_ACTION" = "start" ] ; then
|
||||||
|
+ if [ "$__OCF_ACTION" = "monitor" ] || [ "$1" = "quick" ]; then
|
||||||
|
#
|
||||||
|
- # Is the volue attached?
|
||||||
|
+ # Is the volume attached?
|
||||||
|
# We check the local devices
|
||||||
|
#
|
||||||
|
short_volume_id=$(echo $OCF_RESKEY_volume_id | awk '{print substr($0, 0, 20)}')
|
||||||
|
@@ -158,7 +158,7 @@ osvol_monitor() {
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
- # Is the volue attached?
|
||||||
|
+ # Is the volume attached?
|
||||||
|
# We use the API
|
||||||
|
#
|
||||||
|
result=$(run_openstackcli "volume show \
|
||||||
|
@@ -249,7 +249,7 @@ osvol_start() {
|
||||||
|
return $OCF_ERR_GENERIC
|
||||||
|
fi
|
||||||
|
|
||||||
|
- while ! osvol_monitor; do
|
||||||
|
+ while ! osvol_monitor quick; do
|
||||||
|
ocf_log info "Waiting for cinder volume $OCF_RESKEY_volume_id to appear on $node_id"
|
||||||
|
sleep 1
|
||||||
|
done
|
Loading…
Reference in new issue