Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
--- 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