From d8400a30604229d349f36855c30a6a438204023b Mon Sep 17 00:00:00 2001 From: Michele Baldessari Date: Wed, 12 Jun 2019 11:29:17 +0200 Subject: [PATCH] Avoid double call to podman inspect in podman_simple_status() Right now podman_simple_status() does the following: - It calls container_exists() which then calls "podman inspect --format {{.State.Running}} $CONTAINER | egrep '(true|false)' >/dev/null 2>&1" - Then it calls "podman inspect --format {{.State.Running}} $CONTAINER 2>/dev/null" This duplication is unnecessary and we can rely on the second podman inspect call. We need to do this because podman inspect calls are very expensive as soon as moderate I/O kicks in. Tested as follows: 1) Injected the change on an existing bundle-based cluster 2) Observed that monitoring operations kept working okay 3) Verified by adding set -x that only a single podman inspect per monitor operation was called (as opposed to two before) 4) Restarted a bundle with an OCF resource inside correctly 5) Did a podman stop of a bundle and correctly observed that: 5.a) It was detected as non running: * haproxy-bundle-podman-1_monitor_60000 on controller-0 'not running' (7): call=192, status=complete, exitreason='', last-rc-change='Wed Jun 12 09:22:18 2019', queued=0ms, exec=0ms 5.b) It was correctly started afterwards Signed-off-by: Michele Baldessari --- heartbeat/podman | 5 ----- 1 file changed, 5 deletions(-) diff --git a/heartbeat/podman b/heartbeat/podman index 34e11da6b..b2b3081f9 100755 --- a/heartbeat/podman +++ b/heartbeat/podman @@ -238,11 +238,6 @@ podman_simple_status() { local val - container_exists - if [ $? -ne 0 ]; then - return $OCF_NOT_RUNNING - fi - # retrieve the 'Running' attribute for the container val=$(podman inspect --format {{.State.Running}} $CONTAINER 2>/dev/null) if [ $? -ne 0 ]; then