Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:Update
pacemaker.3577
pacemaker-pengine-ordering-demote-failed-moving...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pacemaker-pengine-ordering-demote-failed-moving-containers.patch of Package pacemaker.3577
commit 62ed004d828ad9b4e3592b684e7d0965b7046965 Author: Andrew Beekhof <andrew@beekhof.net> Date: Fri Mar 11 13:22:41 2016 +1100 Fix: PE: Correctly handle the ordering of demote actions for failed and moving containers diff --git a/pengine/allocate.c b/pengine/allocate.c index 9e53423..fb984e1 100644 --- a/pengine/allocate.c +++ b/pengine/allocate.c @@ -1726,16 +1726,18 @@ apply_remote_node_ordering(pe_working_set_t *data_set) NULL, pe_order_preserve | pe_order_implies_first, data_set); - } else { + } - custom_action_order(remote_rsc, - generate_op_key(remote_rsc->id, RSC_START, 0), - NULL, - action->rsc, - NULL, - action, - pe_order_preserve | pe_order_implies_then | pe_order_runnable_left, - data_set); + if(container && is_set(container->flags, pe_rsc_failed)) { + /* Just like a stop, the demote is implied by the + * container having failed/stopped + * + * If we really wanted to we would order the demote + * after the stop, IFF the containers current role was + * stopped (otherwise we re-introduce an ordering + * loop) + */ + pe_set_action_bit(action, pe_action_pseudo); } } else if (safe_str_eq(action->task, "stop") && diff --git a/pengine/test10/whitebox-ms-ordering.dot b/pengine/test10/whitebox-ms-ordering.dot index a830841..7f03a65 100644 --- a/pengine/test10/whitebox-ms-ordering.dot +++ b/pengine/test10/whitebox-ms-ordering.dot @@ -42,7 +42,7 @@ "lxc-ms_demote_0 lxc1" -> "lxc-ms-master_demoted_0" [ style = bold] "lxc-ms_demote_0 lxc1" -> "lxc-ms_promote_0 lxc1" [ style = bold] "lxc-ms_demote_0 lxc1" -> "lxc-ms_stop_0 lxc1" [ style = bold] -"lxc-ms_demote_0 lxc1" [ style=bold color="green" fontcolor="black"] +"lxc-ms_demote_0 lxc1" [ style=bold color="green" fontcolor="orange"] "lxc-ms_monitor_0 18node1" -> "lxc-ms-master_start_0" [ style = bold] "lxc-ms_monitor_0 18node1" -> "lxc-ms_stop_0 lxc1" [ style = bold] "lxc-ms_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] @@ -70,7 +70,6 @@ "lxc-ms_stop_0 lxc2" -> "lxc-ms_start_0 lxc2" [ style = bold] "lxc-ms_stop_0 lxc2" [ style=bold color="green" fontcolor="orange"] "lxc1_monitor_30000 18node1" [ style=bold color="green" fontcolor="black"] -"lxc1_start_0 18node1" -> "lxc-ms_demote_0 lxc1" [ style = bold] "lxc1_start_0 18node1" -> "lxc-ms_promote_0 lxc1" [ style = bold] "lxc1_start_0 18node1" -> "lxc-ms_start_0 lxc1" [ style = bold] "lxc1_start_0 18node1" -> "lxc1_monitor_30000 18node1" [ style = bold] diff --git a/pengine/test10/whitebox-ms-ordering.exp b/pengine/test10/whitebox-ms-ordering.exp index f929326..0566f41 100644 --- a/pengine/test10/whitebox-ms-ordering.exp +++ b/pengine/test10/whitebox-ms-ordering.exp @@ -100,7 +100,7 @@ </action_set> <inputs> <trigger> - <rsc_op id="16" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> + <pseudo_event id="16" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0"/> </trigger> <trigger> <rsc_op id="18" operation="start" operation_key="lxc-ms_start_0" internal_operation_key="lxc-ms:0_start_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> @@ -149,7 +149,7 @@ <rsc_op id="11" operation="monitor" operation_key="lxc-ms_monitor_0" internal_operation_key="lxc-ms:0_monitor_0" on_node="18node3" on_node_uuid="3"/> </trigger> <trigger> - <rsc_op id="16" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> + <pseudo_event id="16" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0"/> </trigger> <trigger> <pseudo_event id="25" operation="stop" operation_key="lxc-ms-master_stop_0"/> @@ -158,18 +158,14 @@ </synapse> <synapse id="11"> <action_set> - <rsc_op id="16" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"> - <primitive id="lxc-ms" long-id="lxc-ms:0" class="ocf" provider="pacemaker" type="Stateful"/> + <pseudo_event id="16" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0"> <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> - </rsc_op> + </pseudo_event> </action_set> <inputs> <trigger> <pseudo_event id="29" operation="demote" operation_key="lxc-ms-master_demote_0"/> </trigger> - <trigger> - <rsc_op id="31" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> - </trigger> </inputs> </synapse> <synapse id="12"> @@ -254,7 +250,7 @@ </action_set> <inputs> <trigger> - <rsc_op id="16" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> + <pseudo_event id="16" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0"/> </trigger> <trigger> <pseudo_event id="29" operation="demote" operation_key="lxc-ms-master_demote_0"/> diff --git a/pengine/test10/whitebox-ms-ordering.summary b/pengine/test10/whitebox-ms-ordering.summary index c3b7a83..d6bbaaf 100644 --- a/pengine/test10/whitebox-ms-ordering.summary +++ b/pengine/test10/whitebox-ms-ordering.summary @@ -29,17 +29,17 @@ Executing cluster transition: * Pseudo action: lxc-ms-master_demote_0 * Resource action: container1 start on 18node1 * Resource action: container2 start on 18node1 - * Resource action: lxc1 start on 18node1 - * Resource action: lxc2 start on 18node1 - * Resource action: lxc-ms demote on lxc1 + * Pseudo action: lxc-ms_demote_0 * Pseudo action: lxc-ms-master_demoted_0 * Pseudo action: lxc-ms-master_stop_0 - * Resource action: lxc1 monitor=30000 on 18node1 - * Resource action: lxc2 monitor=30000 on 18node1 + * Resource action: lxc1 start on 18node1 + * Resource action: lxc2 start on 18node1 * Pseudo action: lxc-ms_stop_0 * Pseudo action: lxc-ms_stop_0 * Pseudo action: lxc-ms-master_stopped_0 * Pseudo action: lxc-ms-master_start_0 + * Resource action: lxc1 monitor=30000 on 18node1 + * Resource action: lxc2 monitor=30000 on 18node1 * Pseudo action: all_stopped * Resource action: lxc-ms start on lxc1 * Resource action: lxc-ms start on lxc2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor