Blob Blame History Raw
commit 6f2e3fc12f64f317280f9cb3d65cc08489516e39
Author: Andrew Beekhof <andrew@beekhof.net>
Date:   Thu Apr 10 14:25:32 2014 +1000

    Fix: PE: Ensure unfencing only happens once, even if the transition is interrupted
    
    (cherry picked from commit 76a3fe06ae8fdfa579b2ae6ba730945ef79b0ebc)

diff --git a/pengine/native.c b/pengine/native.c
index 5c723c2..6294092 100644
--- a/pengine/native.c
+++ b/pengine/native.c
@@ -2498,6 +2498,7 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete,
      */
     if(is_set(rsc->flags, pe_rsc_fence_device) && is_set(data_set->flags, pe_flag_enable_unfencing)) {
         trigger_unfencing(NULL, node, "node discovery", probe, data_set);
+        probe->priority = INFINITY; /* Ensure this runs if unfencing succeeds */
 
     } else if(is_set(rsc->flags, pe_rsc_needs_unfencing)) {
         action_t *unfence = pe_fence_op(node, "on", TRUE, data_set);
diff --git a/pengine/test10/unfence-definition.exp b/pengine/test10/unfence-definition.exp
index 0f779da..f023a0b 100644
--- a/pengine/test10/unfence-definition.exp
+++ b/pengine/test10/unfence-definition.exp
@@ -24,7 +24,7 @@
       </trigger>
     </inputs>
   </synapse>
-  <synapse id="1">
+  <synapse id="1" priority="1000000">
     <action_set>
       <rsc_op id="13" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3">
         <primitive id="fencing" class="stonith" type="fence_scsi"/>
diff --git a/pengine/test10/unfence-parameters.exp b/pengine/test10/unfence-parameters.exp
index d3480f3..8ff3016 100644
--- a/pengine/test10/unfence-parameters.exp
+++ b/pengine/test10/unfence-parameters.exp
@@ -12,7 +12,7 @@
       </trigger>
     </inputs>
   </synapse>
-  <synapse id="1">
+  <synapse id="1" priority="1000000">
     <action_set>
       <rsc_op id="12" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3">
         <primitive id="fencing" class="stonith" type="fence_scsi"/>
diff --git a/pengine/test10/unfence-startup.exp b/pengine/test10/unfence-startup.exp
index 7c55d2c..a0661e7 100644
--- a/pengine/test10/unfence-startup.exp
+++ b/pengine/test10/unfence-startup.exp
@@ -1,5 +1,5 @@
 <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY"  transition_id="0">
-  <synapse id="0">
+  <synapse id="0" priority="1000000">
     <action_set>
       <rsc_op id="11" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3">
         <primitive id="fencing" class="stonith" type="fence_scsi"/>