---
 scripts/crm-fence-peer.sh |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/scripts/crm-fence-peer.sh b/scripts/crm-fence-peer.sh
index 67f3457..83bae72 100755
--- a/scripts/crm-fence-peer.sh
+++ b/scripts/crm-fence-peer.sh
@@ -531,6 +531,21 @@ guess_if_pacemaker_will_fence()
        [[ $crmd = "banned" ]] && will_fence=true
        if [[ ${expected-down} = "down" && $in_ccm = "false"  && $crmd != 
"online" ]]; then
                : "pacemaker considers this as clean down"
+       elif [[ $crmd/$join/$expected = "offline/down/down" ]] ; then
+               # Check if pacemaker is simply shutdown, but membership/quorum 
is possibly still established (corosync2/cman)
+               # 1.1.11 will set expected="down" on a clean shutdown too
+               # Look for "shutdown" transient node attribute
+               local node_attributes=$(set +x; echo "$cib_xml" | awk 
"/<node_state [^\n]*uname=\"$DRBD_PEER\"/,/<\/instance_attributes>/"| grep -F 
-e "<nvpair ")
+               if [ -n "${node_attributes}" ] ; then
+                       local shut_down=$(set +x; echo "$node_attributes" | awk 
'/ name="shutdown"/ {if (match($0, /value=\"([[:digit:]]+)\"/, values)) {print 
values[1]} }')
+                       if [ -n "${shut_down}" ] ; then
+                               : "pacemaker considers this as clean down"
+                       else
+                               will_fence=true
+                       fi
+               else
+                       will_fence=true
+               fi
        elif [[ $in_ccm = false ]] || [[ $crmd != "online" ]]; then
                will_fence=true
        fi
-- 
1.7.1

_______________________________________________
drbd-user mailing list
[email protected]
http://lists.linbit.com/mailman/listinfo/drbd-user

Reply via email to