Blob Blame History Raw
From 3d52ec553fc3de82e1d1dcbef949882947915c49 Mon Sep 17 00:00:00 2001
From: Michele Baldessari <michele@acksyn.org>
Date: Thu, 29 Aug 2019 08:10:57 +0200
Subject: [PATCH] Fixup docker_stop condition on error

In docker_stop() let's store the return code of docker_simple_status
otherwise the second branch of the elif risks reflecting the return
code of the previous operaiton and not of docker_simple_status()

Retested this with a bunch of stop/start commands on a rabbitmq bundle
and observed no issues.

This fixes a stop() regression introduced in
b7ae1bfbe7d393a9e9d993da3da35cc4d1bc9eb4 ("Make the check for the docker
daemon being up more robust")

Thanks to Kota Akatsuka for spotting it.

Signed-off-by: Michele Baldessari <michele@acksyn.org>
---
 heartbeat/docker | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/heartbeat/docker b/heartbeat/docker
index 7c587b962..41ac42129 100755
--- a/heartbeat/docker
+++ b/heartbeat/docker
@@ -450,10 +450,11 @@ docker_stop()
 {
 	local timeout=60
 	docker_simple_status
-	if [ $? -eq $OCF_NOT_RUNNING ]; then
+	ret=$?
+	if [ $ret -eq $OCF_NOT_RUNNING ]; then
 		remove_container
 		return $OCF_SUCCESS
-        elif [ $? -eq $OCF_ERR_GENERIC ]; then
+        elif [ $ret -eq $OCF_ERR_GENERIC ]; then
                return $OCF_ERR_GENERIC
 	fi