From 3edf6f8de36014fa576de0e779b7355b5b56fe57 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Apr 06 2021 13:33:30 +0000 Subject: import pacemaker-2.0.4-6.el8_3.2 --- diff --git a/SOURCES/017-promotion.patch b/SOURCES/017-promotion.patch new file mode 100644 index 0000000..93f8411 --- /dev/null +++ b/SOURCES/017-promotion.patch @@ -0,0 +1,2309 @@ +From 8c9ee257541e37e9974a90ee309be7e88ef5182d Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Fri, 4 Sep 2020 17:02:03 -0500 +Subject: [PATCH 1/3] Fix: scheduler: don't select instance to be promoted on a + guest that can't run + +The scheduler chooses clone instance(s) to be promoted from those that pass +can_be_master(). Previously, this ensured the instance was allocated to a node, +but that node might be a guest node, and its guest resource might not be +allocated to a node (i.e. can't run anywhere). + +In that case, the promotion would correctly be blocked, but no other instance +would be chosen to be promoted until the next transition. + +Now, ensure the guest resource is allocated as well, so another instance is +chosen. +--- + lib/pacemaker/pcmk_sched_promotable.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/lib/pacemaker/pcmk_sched_promotable.c b/lib/pacemaker/pcmk_sched_promotable.c +index 0dbeed2..b976344 100644 +--- a/lib/pacemaker/pcmk_sched_promotable.c ++++ b/lib/pacemaker/pcmk_sched_promotable.c +@@ -151,6 +151,14 @@ static void apply_master_location(pe_resource_t *child, GListPtr location_constr + } + + static pe_node_t * ++guest_location(pe_node_t *guest_node) ++{ ++ pe_resource_t *guest = guest_node->details->remote_rsc->container; ++ ++ return guest->fns->location(guest, NULL, FALSE); ++} ++ ++static pe_node_t * + can_be_master(pe_resource_t * rsc) + { + pe_node_t *node = NULL; +@@ -199,6 +207,15 @@ can_be_master(pe_resource_t * rsc) + } else if (can_run_resources(node) == FALSE) { + crm_trace("Node can't run any resources: %s", node->details->uname); + return NULL; ++ ++ /* @TODO It's possible this check should be done in can_run_resources() ++ * instead. We should investigate all its callers to figure out whether that ++ * would be a good idea. ++ */ ++ } else if (pe__is_guest_node(node) && (guest_location(node) == NULL)) { ++ pe_rsc_trace(rsc, "%s cannot be promoted: guest %s not allocated", ++ rsc->id, node->details->remote_rsc->container->id); ++ return NULL; + } + + get_clone_variant_data(clone_data, parent); +-- +1.8.3.1 + + +From 9cd4260bda2ec77f9e336e85c31b175656f1d645 Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Fri, 4 Sep 2020 17:24:48 -0500 +Subject: [PATCH 2/3] Test: scheduler: update regression test for promotion + change + +The promotion change in the previous commit affected an existing test for the +better. The summary and graph output did not actually change (other than action +IDs), just the process by which the graph was arrived, which can be summed up +in this trace output difference: + +5260a5261 +> (can_be_master) trace: galera:1 cannot be promoted: guest galera-bundle-docker-1 not allocated +5262d5262 +< (pcmk__set_instance_roles) info: Promoting galera:1 (Master galera-bundle-1) +5266c5266 +< (pcmk__set_instance_roles) info: galera-bundle-master: Promoted 2 instances of a possible 3 to master +--- +> (pcmk__set_instance_roles) info: galera-bundle-master: Promoted 1 instances of a possible 3 to master + +Previously, 2 instances were selected to be promoted, but only 1 of those +promotes ended up being runnable. Now, only the 1 runnable instance is selected +to begin with. + +This shows up in the regression test differences as Slave monitors rather than +Master monitors being scheduled for the unrunnable instance (the monitors +themselves being unrunnable as well, there are no substantive graph changes). +--- + cts/scheduler/guest-host-not-fenceable.dot | 11 ++++++--- + cts/scheduler/guest-host-not-fenceable.exp | 36 +++++++++++++++--------------- + 2 files changed, 26 insertions(+), 21 deletions(-) + +diff --git a/cts/scheduler/guest-host-not-fenceable.dot b/cts/scheduler/guest-host-not-fenceable.dot +index 98833f6..a086fcb 100644 +--- a/cts/scheduler/guest-host-not-fenceable.dot ++++ b/cts/scheduler/guest-host-not-fenceable.dot +@@ -13,7 +13,8 @@ + "galera-bundle-0_stop_0 node1" [ style=bold color="green" fontcolor="black"] + "galera-bundle-1_monitor_30000 node1" [ style=dashed color="red" fontcolor="black"] + "galera-bundle-1_start_0 node1" -> "galera-bundle-1_monitor_30000 node1" [ style = dashed] +-"galera-bundle-1_start_0 node1" -> "galera_monitor_10000 galera-bundle-1" [ style = dashed] ++"galera-bundle-1_start_0 node1" -> "galera_monitor_20000 galera-bundle-1" [ style = dashed] ++"galera-bundle-1_start_0 node1" -> "galera_monitor_30000 galera-bundle-1" [ style = dashed] + "galera-bundle-1_start_0 node1" -> "galera_start_0 galera-bundle-1" [ style = dashed] + "galera-bundle-1_start_0 node1" [ style=dashed color="red" fontcolor="black"] + "galera-bundle-1_stop_0 node2" -> "galera-bundle-1_start_0 node1" [ style = dashed] +@@ -92,6 +93,8 @@ + "galera_demote_0 galera-bundle-0" [ style=bold color="green" fontcolor="black"] + "galera_demote_0 galera-bundle-1" -> "galera-bundle-master_demoted_0" [ style = dashed] + "galera_demote_0 galera-bundle-1" -> "galera_demote_0 galera-bundle-0" [ style = dashed] ++"galera_demote_0 galera-bundle-1" -> "galera_monitor_20000 galera-bundle-1" [ style = dashed] ++"galera_demote_0 galera-bundle-1" -> "galera_monitor_30000 galera-bundle-1" [ style = dashed] + "galera_demote_0 galera-bundle-1" -> "galera_stop_0 galera-bundle-1" [ style = dashed] + "galera_demote_0 galera-bundle-1" [ style=dashed color="red" fontcolor="black"] + "galera_demote_0 galera-bundle-2" -> "galera-bundle-master_demoted_0" [ style = dashed] +@@ -101,15 +104,17 @@ + "galera_demote_0 galera-bundle-2" -> "galera_stop_0 galera-bundle-2" [ style = dashed] + "galera_demote_0 galera-bundle-2" [ style=dashed color="red" fontcolor="black"] + "galera_monitor_10000 galera-bundle-0" [ style=dashed color="red" fontcolor="black"] +-"galera_monitor_10000 galera-bundle-1" [ style=dashed color="red" fontcolor="black"] ++"galera_monitor_20000 galera-bundle-1" [ style=dashed color="red" fontcolor="black"] + "galera_monitor_20000 galera-bundle-2" [ style=dashed color="red" fontcolor="black"] ++"galera_monitor_30000 galera-bundle-1" [ style=dashed color="red" fontcolor="black"] + "galera_monitor_30000 galera-bundle-2" [ style=dashed color="red" fontcolor="black"] + "galera_start_0 galera-bundle-0" -> "galera-bundle-master_running_0" [ style = dashed] + "galera_start_0 galera-bundle-0" -> "galera_monitor_10000 galera-bundle-0" [ style = dashed] + "galera_start_0 galera-bundle-0" -> "galera_start_0 galera-bundle-1" [ style = dashed] + "galera_start_0 galera-bundle-0" [ style=dashed color="red" fontcolor="black"] + "galera_start_0 galera-bundle-1" -> "galera-bundle-master_running_0" [ style = dashed] +-"galera_start_0 galera-bundle-1" -> "galera_monitor_10000 galera-bundle-1" [ style = dashed] ++"galera_start_0 galera-bundle-1" -> "galera_monitor_20000 galera-bundle-1" [ style = dashed] ++"galera_start_0 galera-bundle-1" -> "galera_monitor_30000 galera-bundle-1" [ style = dashed] + "galera_start_0 galera-bundle-1" -> "galera_start_0 galera-bundle-2" [ style = dashed] + "galera_start_0 galera-bundle-1" [ style=dashed color="red" fontcolor="black"] + "galera_start_0 galera-bundle-2" -> "galera-bundle-master_running_0" [ style = dashed] +diff --git a/cts/scheduler/guest-host-not-fenceable.exp b/cts/scheduler/guest-host-not-fenceable.exp +index b9293d7..0631c40 100644 +--- a/cts/scheduler/guest-host-not-fenceable.exp ++++ b/cts/scheduler/guest-host-not-fenceable.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -66,7 +66,7 @@ + + + +- ++ + + + +@@ -162,7 +162,7 @@ + + + +- ++ + + + +@@ -181,13 +181,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -196,25 +196,25 @@ + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + + + +- ++ + + + +@@ -223,13 +223,13 @@ + + + +- ++ + + + + + +- ++ + + + +@@ -238,7 +238,7 @@ + + + +- ++ + + + +@@ -292,22 +292,22 @@ + + + +- ++ + + + + + +- ++ + + +- ++ + + + + + +- ++ + + + +@@ -324,7 +324,7 @@ + + + +- ++ + + + +@@ -336,7 +336,7 @@ + + + +- ++ + + + +-- +1.8.3.1 + + +From 7a5a29817a694d8dc06eabad71c1e103ee089eef Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Fri, 4 Sep 2020 17:33:11 -0500 +Subject: [PATCH 3/3] Test: scheduler: add test for promotion change + +This adds a substantive test for the promotion change. +--- + cts/cts-scheduler.in | 1 + + cts/scheduler/no-promote-on-unrunnable-guest.dot | 128 ++++ + cts/scheduler/no-promote-on-unrunnable-guest.exp | 647 +++++++++++++++++ + .../no-promote-on-unrunnable-guest.scores | 269 +++++++ + .../no-promote-on-unrunnable-guest.summary | 113 +++ + cts/scheduler/no-promote-on-unrunnable-guest.xml | 802 +++++++++++++++++++++ + 6 files changed, 1960 insertions(+) + create mode 100644 cts/scheduler/no-promote-on-unrunnable-guest.dot + create mode 100644 cts/scheduler/no-promote-on-unrunnable-guest.exp + create mode 100644 cts/scheduler/no-promote-on-unrunnable-guest.scores + create mode 100644 cts/scheduler/no-promote-on-unrunnable-guest.summary + create mode 100644 cts/scheduler/no-promote-on-unrunnable-guest.xml + +diff --git a/cts/cts-scheduler.in b/cts/cts-scheduler.in +index ea9c660..c7718fa 100644 +--- a/cts/cts-scheduler.in ++++ b/cts/cts-scheduler.in +@@ -520,6 +520,7 @@ TESTS = [ + [ "on_fail_demote3", "Recovery with on-fail=\"demote\" with no promotion" ], + [ "on_fail_demote4", "Recovery with on-fail=\"demote\" on failed cluster, remote, guest, and bundle nodes" ], + [ "no_quorum_demote", "Promotable demotion and primitive stop with no-quorum-policy=\"demote\"" ], ++ [ "no-promote-on-unrunnable-guest", "Don't select bundle instance for promotion when container can't run" ], + ], + [ + [ "history-1", "Correctly parse stateful-1 resource state" ], +diff --git a/cts/scheduler/no-promote-on-unrunnable-guest.dot b/cts/scheduler/no-promote-on-unrunnable-guest.dot +new file mode 100644 +index 0000000..6063640 +--- /dev/null ++++ b/cts/scheduler/no-promote-on-unrunnable-guest.dot +@@ -0,0 +1,128 @@ ++ digraph "g" { ++"Cancel ovndb_servers_monitor_30000 ovn-dbs-bundle-1" -> "ovndb_servers_promote_0 ovn-dbs-bundle-1" [ style = bold] ++"Cancel ovndb_servers_monitor_30000 ovn-dbs-bundle-1" [ style=bold color="green" fontcolor="black"] ++"ovn-dbs-bundle-0_monitor_30000 controller-0" [ style=dashed color="red" fontcolor="black"] ++"ovn-dbs-bundle-0_start_0 controller-0" -> "ovn-dbs-bundle-0_monitor_30000 controller-0" [ style = dashed] ++"ovn-dbs-bundle-0_start_0 controller-0" -> "ovndb_servers_monitor_30000 ovn-dbs-bundle-0" [ style = dashed] ++"ovn-dbs-bundle-0_start_0 controller-0" -> "ovndb_servers_start_0 ovn-dbs-bundle-0" [ style = dashed] ++"ovn-dbs-bundle-0_start_0 controller-0" [ style=dashed color="red" fontcolor="black"] ++"ovn-dbs-bundle-0_stop_0 controller-0" -> "ovn-dbs-bundle-0_start_0 controller-0" [ style = dashed] ++"ovn-dbs-bundle-0_stop_0 controller-0" -> "ovn-dbs-bundle-podman-0_stop_0 controller-0" [ style = bold] ++"ovn-dbs-bundle-0_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] ++"ovn-dbs-bundle-master_confirmed-post_notify_promoted_0" -> "ovn-dbs-bundle_promoted_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-post_notify_promoted_0" -> "ovndb_servers_monitor_10000 ovn-dbs-bundle-1" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-post_notify_promoted_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_confirmed-post_notify_running_0" -> "ovn-dbs-bundle-master_pre_notify_promote_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-post_notify_running_0" -> "ovn-dbs-bundle_running_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_confirmed-post_notify_stopped_0" -> "ovn-dbs-bundle-master_pre_notify_promote_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-post_notify_stopped_0" -> "ovn-dbs-bundle-master_pre_notify_start_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-post_notify_stopped_0" -> "ovn-dbs-bundle_stopped_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-post_notify_stopped_0" -> "ovndb_servers_monitor_10000 ovn-dbs-bundle-1" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_confirmed-pre_notify_promote_0" -> "ovn-dbs-bundle-master_post_notify_promoted_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-pre_notify_promote_0" -> "ovn-dbs-bundle-master_promote_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-pre_notify_promote_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_confirmed-pre_notify_start_0" -> "ovn-dbs-bundle-master_post_notify_running_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-pre_notify_start_0" -> "ovn-dbs-bundle-master_start_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_confirmed-pre_notify_stop_0" -> "ovn-dbs-bundle-master_post_notify_stopped_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-pre_notify_stop_0" -> "ovn-dbs-bundle-master_stop_0" [ style = bold] ++"ovn-dbs-bundle-master_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_post_notify_promoted_0" -> "ovn-dbs-bundle-master_confirmed-post_notify_promoted_0" [ style = bold] ++"ovn-dbs-bundle-master_post_notify_promoted_0" -> "ovndb_servers_post_notify_promoted_0 ovn-dbs-bundle-1" [ style = bold] ++"ovn-dbs-bundle-master_post_notify_promoted_0" -> "ovndb_servers_post_notify_promoted_0 ovn-dbs-bundle-2" [ style = bold] ++"ovn-dbs-bundle-master_post_notify_promoted_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_post_notify_running_0" -> "ovn-dbs-bundle-master_confirmed-post_notify_running_0" [ style = bold] ++"ovn-dbs-bundle-master_post_notify_running_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_post_notify_stopped_0" -> "ovn-dbs-bundle-master_confirmed-post_notify_stopped_0" [ style = bold] ++"ovn-dbs-bundle-master_post_notify_stopped_0" -> "ovndb_servers_post_notify_stopped_0 ovn-dbs-bundle-1" [ style = bold] ++"ovn-dbs-bundle-master_post_notify_stopped_0" -> "ovndb_servers_post_notify_stopped_0 ovn-dbs-bundle-2" [ style = bold] ++"ovn-dbs-bundle-master_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_pre_notify_promote_0" -> "ovn-dbs-bundle-master_confirmed-pre_notify_promote_0" [ style = bold] ++"ovn-dbs-bundle-master_pre_notify_promote_0" -> "ovndb_servers_pre_notify_promote_0 ovn-dbs-bundle-1" [ style = bold] ++"ovn-dbs-bundle-master_pre_notify_promote_0" -> "ovndb_servers_pre_notify_promote_0 ovn-dbs-bundle-2" [ style = bold] ++"ovn-dbs-bundle-master_pre_notify_promote_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_pre_notify_start_0" -> "ovn-dbs-bundle-master_confirmed-pre_notify_start_0" [ style = bold] ++"ovn-dbs-bundle-master_pre_notify_start_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_pre_notify_stop_0" -> "ovn-dbs-bundle-master_confirmed-pre_notify_stop_0" [ style = bold] ++"ovn-dbs-bundle-master_pre_notify_stop_0" -> "ovndb_servers_pre_notify_stop_0 ovn-dbs-bundle-0" [ style = bold] ++"ovn-dbs-bundle-master_pre_notify_stop_0" -> "ovndb_servers_pre_notify_stop_0 ovn-dbs-bundle-1" [ style = bold] ++"ovn-dbs-bundle-master_pre_notify_stop_0" -> "ovndb_servers_pre_notify_stop_0 ovn-dbs-bundle-2" [ style = bold] ++"ovn-dbs-bundle-master_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_promote_0" -> "ovndb_servers_promote_0 ovn-dbs-bundle-1" [ style = bold] ++"ovn-dbs-bundle-master_promote_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_promoted_0" -> "ovn-dbs-bundle-master_post_notify_promoted_0" [ style = bold] ++"ovn-dbs-bundle-master_promoted_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_running_0" -> "ovn-dbs-bundle-master_post_notify_running_0" [ style = bold] ++"ovn-dbs-bundle-master_running_0" -> "ovn-dbs-bundle-master_promote_0" [ style = bold] ++"ovn-dbs-bundle-master_running_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_start_0" -> "ovn-dbs-bundle-master_running_0" [ style = bold] ++"ovn-dbs-bundle-master_start_0" -> "ovndb_servers_start_0 ovn-dbs-bundle-0" [ style = dashed] ++"ovn-dbs-bundle-master_start_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_stop_0" -> "ovn-dbs-bundle-master_stopped_0" [ style = bold] ++"ovn-dbs-bundle-master_stop_0" -> "ovndb_servers_stop_0 ovn-dbs-bundle-0" [ style = bold] ++"ovn-dbs-bundle-master_stop_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-master_stopped_0" -> "ovn-dbs-bundle-master_post_notify_stopped_0" [ style = bold] ++"ovn-dbs-bundle-master_stopped_0" -> "ovn-dbs-bundle-master_promote_0" [ style = bold] ++"ovn-dbs-bundle-master_stopped_0" -> "ovn-dbs-bundle-master_start_0" [ style = bold] ++"ovn-dbs-bundle-master_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle-podman-0_stop_0 controller-0" -> "ovn-dbs-bundle_stopped_0" [ style = bold] ++"ovn-dbs-bundle-podman-0_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] ++"ovn-dbs-bundle_promote_0" -> "ovn-dbs-bundle-master_promote_0" [ style = bold] ++"ovn-dbs-bundle_promote_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle_promoted_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle_running_0" -> "ovn-dbs-bundle_promote_0" [ style = bold] ++"ovn-dbs-bundle_running_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle_stop_0" -> "ovn-dbs-bundle-master_stop_0" [ style = bold] ++"ovn-dbs-bundle_stop_0" -> "ovn-dbs-bundle-podman-0_stop_0 controller-0" [ style = bold] ++"ovn-dbs-bundle_stop_0" -> "ovndb_servers_stop_0 ovn-dbs-bundle-0" [ style = bold] ++"ovn-dbs-bundle_stop_0" [ style=bold color="green" fontcolor="orange"] ++"ovn-dbs-bundle_stopped_0" -> "ovn-dbs-bundle_promote_0" [ style = bold] ++"ovn-dbs-bundle_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"ovndb_servers_monitor_10000 ovn-dbs-bundle-1" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_monitor_30000 ovn-dbs-bundle-0" [ style=dashed color="red" fontcolor="black"] ++"ovndb_servers_post_notify_promoted_0 ovn-dbs-bundle-1" -> "ovn-dbs-bundle-master_confirmed-post_notify_promoted_0" [ style = bold] ++"ovndb_servers_post_notify_promoted_0 ovn-dbs-bundle-1" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_post_notify_promoted_0 ovn-dbs-bundle-2" -> "ovn-dbs-bundle-master_confirmed-post_notify_promoted_0" [ style = bold] ++"ovndb_servers_post_notify_promoted_0 ovn-dbs-bundle-2" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_post_notify_stopped_0 ovn-dbs-bundle-1" -> "ovn-dbs-bundle-master_confirmed-post_notify_stopped_0" [ style = bold] ++"ovndb_servers_post_notify_stopped_0 ovn-dbs-bundle-1" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_post_notify_stopped_0 ovn-dbs-bundle-2" -> "ovn-dbs-bundle-master_confirmed-post_notify_stopped_0" [ style = bold] ++"ovndb_servers_post_notify_stopped_0 ovn-dbs-bundle-2" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_pre_notify_promote_0 ovn-dbs-bundle-1" -> "ovn-dbs-bundle-master_confirmed-pre_notify_promote_0" [ style = bold] ++"ovndb_servers_pre_notify_promote_0 ovn-dbs-bundle-1" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_pre_notify_promote_0 ovn-dbs-bundle-2" -> "ovn-dbs-bundle-master_confirmed-pre_notify_promote_0" [ style = bold] ++"ovndb_servers_pre_notify_promote_0 ovn-dbs-bundle-2" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_pre_notify_stop_0 ovn-dbs-bundle-0" -> "ovn-dbs-bundle-master_confirmed-pre_notify_stop_0" [ style = bold] ++"ovndb_servers_pre_notify_stop_0 ovn-dbs-bundle-0" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_pre_notify_stop_0 ovn-dbs-bundle-1" -> "ovn-dbs-bundle-master_confirmed-pre_notify_stop_0" [ style = bold] ++"ovndb_servers_pre_notify_stop_0 ovn-dbs-bundle-1" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_pre_notify_stop_0 ovn-dbs-bundle-2" -> "ovn-dbs-bundle-master_confirmed-pre_notify_stop_0" [ style = bold] ++"ovndb_servers_pre_notify_stop_0 ovn-dbs-bundle-2" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_promote_0 ovn-dbs-bundle-1" -> "ovn-dbs-bundle-master_promoted_0" [ style = bold] ++"ovndb_servers_promote_0 ovn-dbs-bundle-1" -> "ovndb_servers_monitor_10000 ovn-dbs-bundle-1" [ style = bold] ++"ovndb_servers_promote_0 ovn-dbs-bundle-1" [ style=bold color="green" fontcolor="black"] ++"ovndb_servers_start_0 ovn-dbs-bundle-0" -> "ovn-dbs-bundle-master_running_0" [ style = dashed] ++"ovndb_servers_start_0 ovn-dbs-bundle-0" -> "ovndb_servers_monitor_30000 ovn-dbs-bundle-0" [ style = dashed] ++"ovndb_servers_start_0 ovn-dbs-bundle-0" [ style=dashed color="red" fontcolor="black"] ++"ovndb_servers_stop_0 ovn-dbs-bundle-0" -> "ovn-dbs-bundle-0_stop_0 controller-0" [ style = bold] ++"ovndb_servers_stop_0 ovn-dbs-bundle-0" -> "ovn-dbs-bundle-master_stopped_0" [ style = bold] ++"ovndb_servers_stop_0 ovn-dbs-bundle-0" -> "ovndb_servers_start_0 ovn-dbs-bundle-0" [ style = dashed] ++"ovndb_servers_stop_0 ovn-dbs-bundle-0" [ style=bold color="green" fontcolor="black"] ++"stonith-fence_ipmilan-5254005e097a_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] ++"stonith-fence_ipmilan-5254005e097a_start_0 controller-0" -> "stonith-fence_ipmilan-5254005e097a_monitor_60000 controller-0" [ style = bold] ++"stonith-fence_ipmilan-5254005e097a_start_0 controller-0" [ style=bold color="green" fontcolor="black"] ++"stonith-fence_ipmilan-5254005e097a_stop_0 controller-0" -> "stonith-fence_ipmilan-5254005e097a_start_0 controller-0" [ style = bold] ++"stonith-fence_ipmilan-5254005e097a_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] ++"stonith-fence_ipmilan-525400985679_monitor_60000 controller-1" [ style=bold color="green" fontcolor="black"] ++"stonith-fence_ipmilan-525400985679_start_0 controller-1" -> "stonith-fence_ipmilan-525400985679_monitor_60000 controller-1" [ style = bold] ++"stonith-fence_ipmilan-525400985679_start_0 controller-1" [ style=bold color="green" fontcolor="black"] ++"stonith-fence_ipmilan-525400985679_stop_0 controller-1" -> "stonith-fence_ipmilan-525400985679_start_0 controller-1" [ style = bold] ++"stonith-fence_ipmilan-525400985679_stop_0 controller-1" [ style=bold color="green" fontcolor="black"] ++"stonith-fence_ipmilan-525400afe30e_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] ++"stonith-fence_ipmilan-525400afe30e_start_0 controller-2" -> "stonith-fence_ipmilan-525400afe30e_monitor_60000 controller-2" [ style = bold] ++"stonith-fence_ipmilan-525400afe30e_start_0 controller-2" [ style=bold color="green" fontcolor="black"] ++"stonith-fence_ipmilan-525400afe30e_stop_0 controller-2" -> "stonith-fence_ipmilan-525400afe30e_start_0 controller-2" [ style = bold] ++"stonith-fence_ipmilan-525400afe30e_stop_0 controller-2" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/cts/scheduler/no-promote-on-unrunnable-guest.exp b/cts/scheduler/no-promote-on-unrunnable-guest.exp +new file mode 100644 +index 0000000..4417f6e +--- /dev/null ++++ b/cts/scheduler/no-promote-on-unrunnable-guest.exp +@@ -0,0 +1,647 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/cts/scheduler/no-promote-on-unrunnable-guest.scores b/cts/scheduler/no-promote-on-unrunnable-guest.scores +new file mode 100644 +index 0000000..f368ad4 +--- /dev/null ++++ b/cts/scheduler/no-promote-on-unrunnable-guest.scores +@@ -0,0 +1,269 @@ ++Allocation scores: ++Using the original execution date of: 2020-05-14 10:49:31Z ++galera:0 promotion score on galera-bundle-0: 100 ++galera:1 promotion score on galera-bundle-1: 100 ++galera:2 promotion score on galera-bundle-2: 100 ++ovndb_servers:0 promotion score on ovn-dbs-bundle-0: 5 ++ovndb_servers:1 promotion score on ovn-dbs-bundle-1: 5 ++ovndb_servers:2 promotion score on ovn-dbs-bundle-2: 5 ++pcmk__bundle_allocate: galera-bundle allocation score on controller-0: 0 ++pcmk__bundle_allocate: galera-bundle allocation score on controller-1: 0 ++pcmk__bundle_allocate: galera-bundle allocation score on controller-2: 0 ++pcmk__bundle_allocate: galera-bundle-0 allocation score on controller-0: INFINITY ++pcmk__bundle_allocate: galera-bundle-0 allocation score on controller-1: 0 ++pcmk__bundle_allocate: galera-bundle-0 allocation score on controller-2: 0 ++pcmk__bundle_allocate: galera-bundle-1 allocation score on controller-0: 0 ++pcmk__bundle_allocate: galera-bundle-1 allocation score on controller-1: INFINITY ++pcmk__bundle_allocate: galera-bundle-1 allocation score on controller-2: 0 ++pcmk__bundle_allocate: galera-bundle-2 allocation score on controller-0: 0 ++pcmk__bundle_allocate: galera-bundle-2 allocation score on controller-1: 0 ++pcmk__bundle_allocate: galera-bundle-2 allocation score on controller-2: INFINITY ++pcmk__bundle_allocate: galera-bundle-master allocation score on controller-0: 0 ++pcmk__bundle_allocate: galera-bundle-master allocation score on controller-1: 0 ++pcmk__bundle_allocate: galera-bundle-master allocation score on controller-2: 0 ++pcmk__bundle_allocate: galera-bundle-master allocation score on galera-bundle-0: -INFINITY ++pcmk__bundle_allocate: galera-bundle-master allocation score on galera-bundle-1: -INFINITY ++pcmk__bundle_allocate: galera-bundle-master allocation score on galera-bundle-2: -INFINITY ++pcmk__bundle_allocate: galera-bundle-podman-0 allocation score on controller-0: INFINITY ++pcmk__bundle_allocate: galera-bundle-podman-0 allocation score on controller-1: 0 ++pcmk__bundle_allocate: galera-bundle-podman-0 allocation score on controller-2: 0 ++pcmk__bundle_allocate: galera-bundle-podman-1 allocation score on controller-0: 0 ++pcmk__bundle_allocate: galera-bundle-podman-1 allocation score on controller-1: INFINITY ++pcmk__bundle_allocate: galera-bundle-podman-1 allocation score on controller-2: 0 ++pcmk__bundle_allocate: galera-bundle-podman-2 allocation score on controller-0: 0 ++pcmk__bundle_allocate: galera-bundle-podman-2 allocation score on controller-1: 0 ++pcmk__bundle_allocate: galera-bundle-podman-2 allocation score on controller-2: INFINITY ++pcmk__bundle_allocate: galera:0 allocation score on galera-bundle-0: INFINITY ++pcmk__bundle_allocate: galera:1 allocation score on galera-bundle-1: INFINITY ++pcmk__bundle_allocate: galera:2 allocation score on galera-bundle-2: INFINITY ++pcmk__bundle_allocate: openstack-cinder-volume allocation score on controller-0: 0 ++pcmk__bundle_allocate: openstack-cinder-volume allocation score on controller-1: 0 ++pcmk__bundle_allocate: openstack-cinder-volume allocation score on controller-2: 0 ++pcmk__bundle_allocate: openstack-cinder-volume-podman-0 allocation score on controller-0: INFINITY ++pcmk__bundle_allocate: openstack-cinder-volume-podman-0 allocation score on controller-1: 0 ++pcmk__bundle_allocate: openstack-cinder-volume-podman-0 allocation score on controller-2: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle allocation score on controller-0: -INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle allocation score on controller-1: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle allocation score on controller-2: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-0 allocation score on controller-0: INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle-0 allocation score on controller-1: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-0 allocation score on controller-2: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-1 allocation score on controller-0: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-1 allocation score on controller-1: INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle-1 allocation score on controller-2: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-2 allocation score on controller-0: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-2 allocation score on controller-1: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-2 allocation score on controller-2: INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle-master allocation score on controller-0: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-master allocation score on controller-1: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-master allocation score on controller-2: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-master allocation score on ovn-dbs-bundle-0: -INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle-master allocation score on ovn-dbs-bundle-1: -INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle-master allocation score on ovn-dbs-bundle-2: -INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle-podman-0 allocation score on controller-0: -INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle-podman-0 allocation score on controller-1: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-podman-0 allocation score on controller-2: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-podman-1 allocation score on controller-0: -INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle-podman-1 allocation score on controller-1: INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle-podman-1 allocation score on controller-2: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-podman-2 allocation score on controller-0: -INFINITY ++pcmk__bundle_allocate: ovn-dbs-bundle-podman-2 allocation score on controller-1: 0 ++pcmk__bundle_allocate: ovn-dbs-bundle-podman-2 allocation score on controller-2: INFINITY ++pcmk__bundle_allocate: ovndb_servers:0 allocation score on ovn-dbs-bundle-0: INFINITY ++pcmk__bundle_allocate: ovndb_servers:1 allocation score on ovn-dbs-bundle-1: INFINITY ++pcmk__bundle_allocate: ovndb_servers:2 allocation score on ovn-dbs-bundle-2: INFINITY ++pcmk__bundle_allocate: rabbitmq-bundle allocation score on controller-0: 0 ++pcmk__bundle_allocate: rabbitmq-bundle allocation score on controller-1: 0 ++pcmk__bundle_allocate: rabbitmq-bundle allocation score on controller-2: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-0 allocation score on controller-0: INFINITY ++pcmk__bundle_allocate: rabbitmq-bundle-0 allocation score on controller-1: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-0 allocation score on controller-2: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-1 allocation score on controller-0: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-1 allocation score on controller-1: INFINITY ++pcmk__bundle_allocate: rabbitmq-bundle-1 allocation score on controller-2: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-2 allocation score on controller-0: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-2 allocation score on controller-1: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-2 allocation score on controller-2: INFINITY ++pcmk__bundle_allocate: rabbitmq-bundle-clone allocation score on controller-0: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-clone allocation score on controller-1: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-clone allocation score on controller-2: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-0: -INFINITY ++pcmk__bundle_allocate: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-1: -INFINITY ++pcmk__bundle_allocate: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-2: -INFINITY ++pcmk__bundle_allocate: rabbitmq-bundle-podman-0 allocation score on controller-0: INFINITY ++pcmk__bundle_allocate: rabbitmq-bundle-podman-0 allocation score on controller-1: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-podman-0 allocation score on controller-2: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-podman-1 allocation score on controller-0: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-podman-1 allocation score on controller-1: INFINITY ++pcmk__bundle_allocate: rabbitmq-bundle-podman-1 allocation score on controller-2: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-podman-2 allocation score on controller-0: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-podman-2 allocation score on controller-1: 0 ++pcmk__bundle_allocate: rabbitmq-bundle-podman-2 allocation score on controller-2: INFINITY ++pcmk__bundle_allocate: rabbitmq:0 allocation score on rabbitmq-bundle-0: INFINITY ++pcmk__bundle_allocate: rabbitmq:1 allocation score on rabbitmq-bundle-1: INFINITY ++pcmk__bundle_allocate: rabbitmq:2 allocation score on rabbitmq-bundle-2: INFINITY ++pcmk__bundle_allocate: redis-bundle allocation score on controller-0: 0 ++pcmk__bundle_allocate: redis-bundle allocation score on controller-1: 0 ++pcmk__bundle_allocate: redis-bundle allocation score on controller-2: 0 ++pcmk__bundle_allocate: redis-bundle-0 allocation score on controller-0: INFINITY ++pcmk__bundle_allocate: redis-bundle-0 allocation score on controller-1: 0 ++pcmk__bundle_allocate: redis-bundle-0 allocation score on controller-2: 0 ++pcmk__bundle_allocate: redis-bundle-1 allocation score on controller-0: 0 ++pcmk__bundle_allocate: redis-bundle-1 allocation score on controller-1: INFINITY ++pcmk__bundle_allocate: redis-bundle-1 allocation score on controller-2: 0 ++pcmk__bundle_allocate: redis-bundle-2 allocation score on controller-0: 0 ++pcmk__bundle_allocate: redis-bundle-2 allocation score on controller-1: 0 ++pcmk__bundle_allocate: redis-bundle-2 allocation score on controller-2: INFINITY ++pcmk__bundle_allocate: redis-bundle-master allocation score on controller-0: 0 ++pcmk__bundle_allocate: redis-bundle-master allocation score on controller-1: 0 ++pcmk__bundle_allocate: redis-bundle-master allocation score on controller-2: 0 ++pcmk__bundle_allocate: redis-bundle-master allocation score on redis-bundle-0: -INFINITY ++pcmk__bundle_allocate: redis-bundle-master allocation score on redis-bundle-1: -INFINITY ++pcmk__bundle_allocate: redis-bundle-master allocation score on redis-bundle-2: -INFINITY ++pcmk__bundle_allocate: redis-bundle-podman-0 allocation score on controller-0: INFINITY ++pcmk__bundle_allocate: redis-bundle-podman-0 allocation score on controller-1: 0 ++pcmk__bundle_allocate: redis-bundle-podman-0 allocation score on controller-2: 0 ++pcmk__bundle_allocate: redis-bundle-podman-1 allocation score on controller-0: 0 ++pcmk__bundle_allocate: redis-bundle-podman-1 allocation score on controller-1: INFINITY ++pcmk__bundle_allocate: redis-bundle-podman-1 allocation score on controller-2: 0 ++pcmk__bundle_allocate: redis-bundle-podman-2 allocation score on controller-0: 0 ++pcmk__bundle_allocate: redis-bundle-podman-2 allocation score on controller-1: 0 ++pcmk__bundle_allocate: redis-bundle-podman-2 allocation score on controller-2: INFINITY ++pcmk__bundle_allocate: redis:0 allocation score on redis-bundle-0: INFINITY ++pcmk__bundle_allocate: redis:1 allocation score on redis-bundle-1: INFINITY ++pcmk__bundle_allocate: redis:2 allocation score on redis-bundle-2: INFINITY ++pcmk__clone_allocate: galera-bundle-master allocation score on controller-0: -INFINITY ++pcmk__clone_allocate: galera-bundle-master allocation score on controller-1: -INFINITY ++pcmk__clone_allocate: galera-bundle-master allocation score on controller-2: -INFINITY ++pcmk__clone_allocate: galera-bundle-master allocation score on galera-bundle-0: 0 ++pcmk__clone_allocate: galera-bundle-master allocation score on galera-bundle-1: 0 ++pcmk__clone_allocate: galera-bundle-master allocation score on galera-bundle-2: 0 ++pcmk__clone_allocate: galera:0 allocation score on galera-bundle-0: INFINITY ++pcmk__clone_allocate: galera:1 allocation score on galera-bundle-1: INFINITY ++pcmk__clone_allocate: galera:2 allocation score on galera-bundle-2: INFINITY ++pcmk__clone_allocate: ovn-dbs-bundle-master allocation score on controller-0: -INFINITY ++pcmk__clone_allocate: ovn-dbs-bundle-master allocation score on controller-1: -INFINITY ++pcmk__clone_allocate: ovn-dbs-bundle-master allocation score on controller-2: -INFINITY ++pcmk__clone_allocate: ovn-dbs-bundle-master allocation score on ovn-dbs-bundle-0: 0 ++pcmk__clone_allocate: ovn-dbs-bundle-master allocation score on ovn-dbs-bundle-1: 0 ++pcmk__clone_allocate: ovn-dbs-bundle-master allocation score on ovn-dbs-bundle-2: 0 ++pcmk__clone_allocate: ovndb_servers:0 allocation score on ovn-dbs-bundle-0: INFINITY ++pcmk__clone_allocate: ovndb_servers:1 allocation score on ovn-dbs-bundle-1: INFINITY ++pcmk__clone_allocate: ovndb_servers:2 allocation score on ovn-dbs-bundle-2: INFINITY ++pcmk__clone_allocate: rabbitmq-bundle-clone allocation score on controller-0: -INFINITY ++pcmk__clone_allocate: rabbitmq-bundle-clone allocation score on controller-1: -INFINITY ++pcmk__clone_allocate: rabbitmq-bundle-clone allocation score on controller-2: -INFINITY ++pcmk__clone_allocate: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-0: 0 ++pcmk__clone_allocate: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-1: 0 ++pcmk__clone_allocate: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-2: 0 ++pcmk__clone_allocate: rabbitmq:0 allocation score on rabbitmq-bundle-0: INFINITY ++pcmk__clone_allocate: rabbitmq:1 allocation score on rabbitmq-bundle-1: INFINITY ++pcmk__clone_allocate: rabbitmq:2 allocation score on rabbitmq-bundle-2: INFINITY ++pcmk__clone_allocate: redis-bundle-master allocation score on controller-0: -INFINITY ++pcmk__clone_allocate: redis-bundle-master allocation score on controller-1: -INFINITY ++pcmk__clone_allocate: redis-bundle-master allocation score on controller-2: -INFINITY ++pcmk__clone_allocate: redis-bundle-master allocation score on redis-bundle-0: 0 ++pcmk__clone_allocate: redis-bundle-master allocation score on redis-bundle-1: 0 ++pcmk__clone_allocate: redis-bundle-master allocation score on redis-bundle-2: 0 ++pcmk__clone_allocate: redis:0 allocation score on redis-bundle-0: INFINITY ++pcmk__clone_allocate: redis:1 allocation score on redis-bundle-1: INFINITY ++pcmk__clone_allocate: redis:2 allocation score on redis-bundle-2: INFINITY ++pcmk__native_allocate: galera-bundle-0 allocation score on controller-0: INFINITY ++pcmk__native_allocate: galera-bundle-0 allocation score on controller-1: 0 ++pcmk__native_allocate: galera-bundle-0 allocation score on controller-2: 0 ++pcmk__native_allocate: galera-bundle-1 allocation score on controller-0: 0 ++pcmk__native_allocate: galera-bundle-1 allocation score on controller-1: INFINITY ++pcmk__native_allocate: galera-bundle-1 allocation score on controller-2: 0 ++pcmk__native_allocate: galera-bundle-2 allocation score on controller-0: 0 ++pcmk__native_allocate: galera-bundle-2 allocation score on controller-1: 0 ++pcmk__native_allocate: galera-bundle-2 allocation score on controller-2: INFINITY ++pcmk__native_allocate: galera-bundle-podman-0 allocation score on controller-0: INFINITY ++pcmk__native_allocate: galera-bundle-podman-0 allocation score on controller-1: 0 ++pcmk__native_allocate: galera-bundle-podman-0 allocation score on controller-2: 0 ++pcmk__native_allocate: galera-bundle-podman-1 allocation score on controller-0: -INFINITY ++pcmk__native_allocate: galera-bundle-podman-1 allocation score on controller-1: INFINITY ++pcmk__native_allocate: galera-bundle-podman-1 allocation score on controller-2: 0 ++pcmk__native_allocate: galera-bundle-podman-2 allocation score on controller-0: -INFINITY ++pcmk__native_allocate: galera-bundle-podman-2 allocation score on controller-1: -INFINITY ++pcmk__native_allocate: galera-bundle-podman-2 allocation score on controller-2: INFINITY ++pcmk__native_allocate: galera:0 allocation score on galera-bundle-0: INFINITY ++pcmk__native_allocate: galera:1 allocation score on galera-bundle-1: INFINITY ++pcmk__native_allocate: galera:2 allocation score on galera-bundle-2: INFINITY ++pcmk__native_allocate: openstack-cinder-volume-podman-0 allocation score on controller-0: INFINITY ++pcmk__native_allocate: openstack-cinder-volume-podman-0 allocation score on controller-1: 0 ++pcmk__native_allocate: openstack-cinder-volume-podman-0 allocation score on controller-2: 0 ++pcmk__native_allocate: ovn-dbs-bundle-0 allocation score on controller-0: INFINITY ++pcmk__native_allocate: ovn-dbs-bundle-0 allocation score on controller-1: -10000 ++pcmk__native_allocate: ovn-dbs-bundle-0 allocation score on controller-2: -10000 ++pcmk__native_allocate: ovn-dbs-bundle-1 allocation score on controller-0: 0 ++pcmk__native_allocate: ovn-dbs-bundle-1 allocation score on controller-1: INFINITY ++pcmk__native_allocate: ovn-dbs-bundle-1 allocation score on controller-2: 0 ++pcmk__native_allocate: ovn-dbs-bundle-2 allocation score on controller-0: 0 ++pcmk__native_allocate: ovn-dbs-bundle-2 allocation score on controller-1: 0 ++pcmk__native_allocate: ovn-dbs-bundle-2 allocation score on controller-2: INFINITY ++pcmk__native_allocate: ovn-dbs-bundle-podman-0 allocation score on controller-0: -INFINITY ++pcmk__native_allocate: ovn-dbs-bundle-podman-0 allocation score on controller-1: -INFINITY ++pcmk__native_allocate: ovn-dbs-bundle-podman-0 allocation score on controller-2: -INFINITY ++pcmk__native_allocate: ovn-dbs-bundle-podman-1 allocation score on controller-0: -INFINITY ++pcmk__native_allocate: ovn-dbs-bundle-podman-1 allocation score on controller-1: INFINITY ++pcmk__native_allocate: ovn-dbs-bundle-podman-1 allocation score on controller-2: 0 ++pcmk__native_allocate: ovn-dbs-bundle-podman-2 allocation score on controller-0: -INFINITY ++pcmk__native_allocate: ovn-dbs-bundle-podman-2 allocation score on controller-1: -INFINITY ++pcmk__native_allocate: ovn-dbs-bundle-podman-2 allocation score on controller-2: INFINITY ++pcmk__native_allocate: ovndb_servers:0 allocation score on ovn-dbs-bundle-0: INFINITY ++pcmk__native_allocate: ovndb_servers:1 allocation score on ovn-dbs-bundle-1: INFINITY ++pcmk__native_allocate: ovndb_servers:2 allocation score on ovn-dbs-bundle-2: INFINITY ++pcmk__native_allocate: rabbitmq-bundle-0 allocation score on controller-0: INFINITY ++pcmk__native_allocate: rabbitmq-bundle-0 allocation score on controller-1: 0 ++pcmk__native_allocate: rabbitmq-bundle-0 allocation score on controller-2: 0 ++pcmk__native_allocate: rabbitmq-bundle-1 allocation score on controller-0: 0 ++pcmk__native_allocate: rabbitmq-bundle-1 allocation score on controller-1: INFINITY ++pcmk__native_allocate: rabbitmq-bundle-1 allocation score on controller-2: 0 ++pcmk__native_allocate: rabbitmq-bundle-2 allocation score on controller-0: 0 ++pcmk__native_allocate: rabbitmq-bundle-2 allocation score on controller-1: 0 ++pcmk__native_allocate: rabbitmq-bundle-2 allocation score on controller-2: INFINITY ++pcmk__native_allocate: rabbitmq-bundle-podman-0 allocation score on controller-0: INFINITY ++pcmk__native_allocate: rabbitmq-bundle-podman-0 allocation score on controller-1: 0 ++pcmk__native_allocate: rabbitmq-bundle-podman-0 allocation score on controller-2: 0 ++pcmk__native_allocate: rabbitmq-bundle-podman-1 allocation score on controller-0: -INFINITY ++pcmk__native_allocate: rabbitmq-bundle-podman-1 allocation score on controller-1: INFINITY ++pcmk__native_allocate: rabbitmq-bundle-podman-1 allocation score on controller-2: 0 ++pcmk__native_allocate: rabbitmq-bundle-podman-2 allocation score on controller-0: -INFINITY ++pcmk__native_allocate: rabbitmq-bundle-podman-2 allocation score on controller-1: -INFINITY ++pcmk__native_allocate: rabbitmq-bundle-podman-2 allocation score on controller-2: INFINITY ++pcmk__native_allocate: rabbitmq:0 allocation score on rabbitmq-bundle-0: INFINITY ++pcmk__native_allocate: rabbitmq:1 allocation score on rabbitmq-bundle-1: INFINITY ++pcmk__native_allocate: rabbitmq:2 allocation score on rabbitmq-bundle-2: INFINITY ++pcmk__native_allocate: redis-bundle-0 allocation score on controller-0: INFINITY ++pcmk__native_allocate: redis-bundle-0 allocation score on controller-1: 0 ++pcmk__native_allocate: redis-bundle-0 allocation score on controller-2: 0 ++pcmk__native_allocate: redis-bundle-1 allocation score on controller-0: 0 ++pcmk__native_allocate: redis-bundle-1 allocation score on controller-1: INFINITY ++pcmk__native_allocate: redis-bundle-1 allocation score on controller-2: 0 ++pcmk__native_allocate: redis-bundle-2 allocation score on controller-0: 0 ++pcmk__native_allocate: redis-bundle-2 allocation score on controller-1: 0 ++pcmk__native_allocate: redis-bundle-2 allocation score on controller-2: INFINITY ++pcmk__native_allocate: redis-bundle-podman-0 allocation score on controller-0: INFINITY ++pcmk__native_allocate: redis-bundle-podman-0 allocation score on controller-1: 0 ++pcmk__native_allocate: redis-bundle-podman-0 allocation score on controller-2: 0 ++pcmk__native_allocate: redis-bundle-podman-1 allocation score on controller-0: -INFINITY ++pcmk__native_allocate: redis-bundle-podman-1 allocation score on controller-1: INFINITY ++pcmk__native_allocate: redis-bundle-podman-1 allocation score on controller-2: 0 ++pcmk__native_allocate: redis-bundle-podman-2 allocation score on controller-0: -INFINITY ++pcmk__native_allocate: redis-bundle-podman-2 allocation score on controller-1: -INFINITY ++pcmk__native_allocate: redis-bundle-podman-2 allocation score on controller-2: INFINITY ++pcmk__native_allocate: redis:0 allocation score on redis-bundle-0: INFINITY ++pcmk__native_allocate: redis:1 allocation score on redis-bundle-1: INFINITY ++pcmk__native_allocate: redis:2 allocation score on redis-bundle-2: INFINITY ++pcmk__native_allocate: stonith-fence_ipmilan-5254005e097a allocation score on controller-0: INFINITY ++pcmk__native_allocate: stonith-fence_ipmilan-5254005e097a allocation score on controller-1: 0 ++pcmk__native_allocate: stonith-fence_ipmilan-5254005e097a allocation score on controller-2: -10000 ++pcmk__native_allocate: stonith-fence_ipmilan-525400985679 allocation score on controller-0: -10000 ++pcmk__native_allocate: stonith-fence_ipmilan-525400985679 allocation score on controller-1: INFINITY ++pcmk__native_allocate: stonith-fence_ipmilan-525400985679 allocation score on controller-2: 0 ++pcmk__native_allocate: stonith-fence_ipmilan-525400afe30e allocation score on controller-0: 0 ++pcmk__native_allocate: stonith-fence_ipmilan-525400afe30e allocation score on controller-1: -10000 ++pcmk__native_allocate: stonith-fence_ipmilan-525400afe30e allocation score on controller-2: INFINITY ++redis:0 promotion score on redis-bundle-0: 1 ++redis:1 promotion score on redis-bundle-1: 1 ++redis:2 promotion score on redis-bundle-2: 1 +diff --git a/cts/scheduler/no-promote-on-unrunnable-guest.summary b/cts/scheduler/no-promote-on-unrunnable-guest.summary +new file mode 100644 +index 0000000..fd6b926 +--- /dev/null ++++ b/cts/scheduler/no-promote-on-unrunnable-guest.summary +@@ -0,0 +1,113 @@ ++Using the original execution date of: 2020-05-14 10:49:31Z ++ ++Current cluster status: ++Online: [ controller-0 controller-1 controller-2 ] ++GuestOnline: [ galera-bundle-0:galera-bundle-podman-0 galera-bundle-1:galera-bundle-podman-1 galera-bundle-2:galera-bundle-podman-2 ovn-dbs-bundle-0:ovn-dbs-bundle-podman-0 ovn-dbs-bundle-1:ovn-dbs-bundle-podman-1 ovn-dbs-bundle-2:ovn-dbs-bundle-podman-2 rabbitmq-bundle-0:rabbitmq-bundle-podman-0 rabbitmq-bundle-1:rabbitmq-bundle-podman-1 rabbitmq-bundle-2:rabbitmq-bundle-podman-2 redis-bundle-0:redis-bundle-podman-0 redis-bundle-1:redis-bundle-podman-1 redis-bundle-2:redis-bundle-podman-2 ] ++ ++ Container bundle set: galera-bundle [cluster.common.tag/rhosp16-openstack-mariadb:pcmklatest] ++ galera-bundle-0 (ocf::heartbeat:galera): Master controller-0 ++ galera-bundle-1 (ocf::heartbeat:galera): Master controller-1 ++ galera-bundle-2 (ocf::heartbeat:galera): Master controller-2 ++ Container bundle set: rabbitmq-bundle [cluster.common.tag/rhosp16-openstack-rabbitmq:pcmklatest] ++ rabbitmq-bundle-0 (ocf::heartbeat:rabbitmq-cluster): Started controller-0 ++ rabbitmq-bundle-1 (ocf::heartbeat:rabbitmq-cluster): Started controller-1 ++ rabbitmq-bundle-2 (ocf::heartbeat:rabbitmq-cluster): Started controller-2 ++ Container bundle set: redis-bundle [cluster.common.tag/rhosp16-openstack-redis:pcmklatest] ++ redis-bundle-0 (ocf::heartbeat:redis): Master controller-0 ++ redis-bundle-1 (ocf::heartbeat:redis): Slave controller-1 ++ redis-bundle-2 (ocf::heartbeat:redis): Slave controller-2 ++ Container bundle set: ovn-dbs-bundle [cluster.common.tag/rhosp16-openstack-ovn-northd:pcmklatest] ++ ovn-dbs-bundle-0 (ocf::ovn:ovndb-servers): Slave controller-0 ++ ovn-dbs-bundle-1 (ocf::ovn:ovndb-servers): Slave controller-1 ++ ovn-dbs-bundle-2 (ocf::ovn:ovndb-servers): Slave controller-2 ++ stonith-fence_ipmilan-5254005e097a (stonith:fence_ipmilan): Started controller-0 ++ stonith-fence_ipmilan-525400afe30e (stonith:fence_ipmilan): Started controller-2 ++ stonith-fence_ipmilan-525400985679 (stonith:fence_ipmilan): Started controller-1 ++ Container bundle: openstack-cinder-volume [cluster.common.tag/rhosp16-openstack-cinder-volume:pcmklatest] ++ openstack-cinder-volume-podman-0 (ocf::heartbeat:podman): Started controller-0 ++ ++Transition Summary: ++ * Stop ovn-dbs-bundle-podman-0 ( controller-0 ) due to node availability ++ * Stop ovn-dbs-bundle-0 ( controller-0 ) due to unrunnable ovn-dbs-bundle-podman-0 start ++ * Stop ovndb_servers:0 ( Slave ovn-dbs-bundle-0 ) due to unrunnable ovn-dbs-bundle-podman-0 start ++ * Promote ovndb_servers:1 ( Slave -> Master ovn-dbs-bundle-1 ) ++ * Restart stonith-fence_ipmilan-5254005e097a ( controller-0 ) due to resource definition change ++ * Restart stonith-fence_ipmilan-525400afe30e ( controller-2 ) due to resource definition change ++ * Restart stonith-fence_ipmilan-525400985679 ( controller-1 ) due to resource definition change ++ ++Executing cluster transition: ++ * Resource action: ovndb_servers cancel=30000 on ovn-dbs-bundle-1 ++ * Pseudo action: ovn-dbs-bundle-master_pre_notify_stop_0 ++ * Resource action: stonith-fence_ipmilan-5254005e097a stop on controller-0 ++ * Resource action: stonith-fence_ipmilan-5254005e097a start on controller-0 ++ * Resource action: stonith-fence_ipmilan-5254005e097a monitor=60000 on controller-0 ++ * Resource action: stonith-fence_ipmilan-525400afe30e stop on controller-2 ++ * Resource action: stonith-fence_ipmilan-525400afe30e start on controller-2 ++ * Resource action: stonith-fence_ipmilan-525400afe30e monitor=60000 on controller-2 ++ * Resource action: stonith-fence_ipmilan-525400985679 stop on controller-1 ++ * Resource action: stonith-fence_ipmilan-525400985679 start on controller-1 ++ * Resource action: stonith-fence_ipmilan-525400985679 monitor=60000 on controller-1 ++ * Pseudo action: ovn-dbs-bundle_stop_0 ++ * Resource action: ovndb_servers notify on ovn-dbs-bundle-0 ++ * Resource action: ovndb_servers notify on ovn-dbs-bundle-1 ++ * Resource action: ovndb_servers notify on ovn-dbs-bundle-2 ++ * Pseudo action: ovn-dbs-bundle-master_confirmed-pre_notify_stop_0 ++ * Pseudo action: ovn-dbs-bundle-master_stop_0 ++ * Resource action: ovndb_servers stop on ovn-dbs-bundle-0 ++ * Pseudo action: ovn-dbs-bundle-master_stopped_0 ++ * Resource action: ovn-dbs-bundle-0 stop on controller-0 ++ * Pseudo action: ovn-dbs-bundle-master_post_notify_stopped_0 ++ * Resource action: ovn-dbs-bundle-podman-0 stop on controller-0 ++ * Resource action: ovndb_servers notify on ovn-dbs-bundle-1 ++ * Resource action: ovndb_servers notify on ovn-dbs-bundle-2 ++ * Pseudo action: ovn-dbs-bundle-master_confirmed-post_notify_stopped_0 ++ * Pseudo action: ovn-dbs-bundle-master_pre_notify_start_0 ++ * Pseudo action: ovn-dbs-bundle_stopped_0 ++ * Pseudo action: ovn-dbs-bundle-master_confirmed-pre_notify_start_0 ++ * Pseudo action: ovn-dbs-bundle-master_start_0 ++ * Pseudo action: ovn-dbs-bundle-master_running_0 ++ * Pseudo action: ovn-dbs-bundle-master_post_notify_running_0 ++ * Pseudo action: ovn-dbs-bundle-master_confirmed-post_notify_running_0 ++ * Pseudo action: ovn-dbs-bundle_running_0 ++ * Pseudo action: ovn-dbs-bundle-master_pre_notify_promote_0 ++ * Pseudo action: ovn-dbs-bundle_promote_0 ++ * Resource action: ovndb_servers notify on ovn-dbs-bundle-1 ++ * Resource action: ovndb_servers notify on ovn-dbs-bundle-2 ++ * Pseudo action: ovn-dbs-bundle-master_confirmed-pre_notify_promote_0 ++ * Pseudo action: ovn-dbs-bundle-master_promote_0 ++ * Resource action: ovndb_servers promote on ovn-dbs-bundle-1 ++ * Pseudo action: ovn-dbs-bundle-master_promoted_0 ++ * Pseudo action: ovn-dbs-bundle-master_post_notify_promoted_0 ++ * Resource action: ovndb_servers notify on ovn-dbs-bundle-1 ++ * Resource action: ovndb_servers notify on ovn-dbs-bundle-2 ++ * Pseudo action: ovn-dbs-bundle-master_confirmed-post_notify_promoted_0 ++ * Pseudo action: ovn-dbs-bundle_promoted_0 ++ * Resource action: ovndb_servers monitor=10000 on ovn-dbs-bundle-1 ++Using the original execution date of: 2020-05-14 10:49:31Z ++ ++Revised cluster status: ++Online: [ controller-0 controller-1 controller-2 ] ++GuestOnline: [ galera-bundle-0:galera-bundle-podman-0 galera-bundle-1:galera-bundle-podman-1 galera-bundle-2:galera-bundle-podman-2 ovn-dbs-bundle-1:ovn-dbs-bundle-podman-1 ovn-dbs-bundle-2:ovn-dbs-bundle-podman-2 rabbitmq-bundle-0:rabbitmq-bundle-podman-0 rabbitmq-bundle-1:rabbitmq-bundle-podman-1 rabbitmq-bundle-2:rabbitmq-bundle-podman-2 redis-bundle-0:redis-bundle-podman-0 redis-bundle-1:redis-bundle-podman-1 redis-bundle-2:redis-bundle-podman-2 ] ++ ++ Container bundle set: galera-bundle [cluster.common.tag/rhosp16-openstack-mariadb:pcmklatest] ++ galera-bundle-0 (ocf::heartbeat:galera): Master controller-0 ++ galera-bundle-1 (ocf::heartbeat:galera): Master controller-1 ++ galera-bundle-2 (ocf::heartbeat:galera): Master controller-2 ++ Container bundle set: rabbitmq-bundle [cluster.common.tag/rhosp16-openstack-rabbitmq:pcmklatest] ++ rabbitmq-bundle-0 (ocf::heartbeat:rabbitmq-cluster): Started controller-0 ++ rabbitmq-bundle-1 (ocf::heartbeat:rabbitmq-cluster): Started controller-1 ++ rabbitmq-bundle-2 (ocf::heartbeat:rabbitmq-cluster): Started controller-2 ++ Container bundle set: redis-bundle [cluster.common.tag/rhosp16-openstack-redis:pcmklatest] ++ redis-bundle-0 (ocf::heartbeat:redis): Master controller-0 ++ redis-bundle-1 (ocf::heartbeat:redis): Slave controller-1 ++ redis-bundle-2 (ocf::heartbeat:redis): Slave controller-2 ++ Container bundle set: ovn-dbs-bundle [cluster.common.tag/rhosp16-openstack-ovn-northd:pcmklatest] ++ ovn-dbs-bundle-0 (ocf::ovn:ovndb-servers): Stopped ++ ovn-dbs-bundle-1 (ocf::ovn:ovndb-servers): Master controller-1 ++ ovn-dbs-bundle-2 (ocf::ovn:ovndb-servers): Slave controller-2 ++ stonith-fence_ipmilan-5254005e097a (stonith:fence_ipmilan): Started controller-0 ++ stonith-fence_ipmilan-525400afe30e (stonith:fence_ipmilan): Started controller-2 ++ stonith-fence_ipmilan-525400985679 (stonith:fence_ipmilan): Started controller-1 ++ Container bundle: openstack-cinder-volume [cluster.common.tag/rhosp16-openstack-cinder-volume:pcmklatest] ++ openstack-cinder-volume-podman-0 (ocf::heartbeat:podman): Started controller-0 ++ +diff --git a/cts/scheduler/no-promote-on-unrunnable-guest.xml b/cts/scheduler/no-promote-on-unrunnable-guest.xml +new file mode 100644 +index 0000000..5a66563 +--- /dev/null ++++ b/cts/scheduler/no-promote-on-unrunnable-guest.xml +@@ -0,0 +1,802 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +-- +1.8.3.1 + diff --git a/SOURCES/018-api-schema.patch b/SOURCES/018-api-schema.patch new file mode 100644 index 0000000..dfe580f --- /dev/null +++ b/SOURCES/018-api-schema.patch @@ -0,0 +1,167 @@ +From bd4f396f267d8ef8f9c9bcbf286a77dc78d4e1b0 Mon Sep 17 00:00:00 2001 +From: Chris Lumens +Date: Tue, 2 Mar 2021 10:26:13 -0500 +Subject: [PATCH 1/2] Med: Generate xml/crm_mon.rng from the contents of + xml/crm_mon*. + +This prevents the version reference in it from getting out of sync. + +See: rhbz#1931332 +--- + xml/Makefile.am | 28 +++++++++++++++++++++++----- + xml/crm_mon.rng | 16 ---------------- + 3 files changed, 24 insertions(+), 21 deletions(-) + delete mode 100644 xml/crm_mon.rng + +diff --git a/xml/Makefile.am b/xml/Makefile.am +index cb6cfa0..c52b968 100644 +--- a/xml/Makefile.am ++++ b/xml/Makefile.am +@@ -76,22 +76,24 @@ CIB_abs_xsl = $(abs_srcdir)/upgrade-1.3.xsl \ + $(abs_srcdir)/upgrade-2.10.xsl \ + $(wildcard $(abs_srcdir)/upgrade-*enter.xsl) \ + $(wildcard $(abs_srcdir)/upgrade-*leave.xsl) +-MON_abs_files = $(abs_srcdir)/crm_mon.rng ++MON_abs_files = $(abs_srcdir)/crm_mon.rng + API_files = $(foreach base,$(API_base),$(wildcard $(srcdir)/api/$(base)*.rng)) + CIB_files = $(foreach base,$(CIB_base),$(wildcard $(srcdir)/$(base).rng $(srcdir)/$(base)-*.rng)) + CIB_xsl = $(srcdir)/upgrade-1.3.xsl \ + $(srcdir)/upgrade-2.10.xsl \ + $(wildcard $(srcdir)/upgrade-*enter.xsl) \ + $(wildcard $(srcdir)/upgrade-*leave.xsl) +-MON_files = $(srcdir)/crm_mon.rng ++MON_files = $(srcdir)/crm_mon.rng + + # Sorted lists of all numeric schema versions + API_numeric_versions = $(call numeric_versions,${API_files}) + CIB_numeric_versions = $(call numeric_versions,${CIB_files}) ++MON_numeric_versions = $(call numeric_versions,$(wildcard $(srcdir)/api/crm_mon*.rng)) + + # The highest numeric schema version + API_max ?= $(lastword $(API_numeric_versions)) + CIB_max ?= $(lastword $(CIB_numeric_versions)) ++MON_max ?= $(lastword $(MON_numeric_versions)) + + # Sorted lists of all schema versions (including "next") + API_versions = next $(API_numeric_versions) +@@ -100,11 +102,12 @@ CIB_versions = next $(CIB_numeric_versions) + # Build tree locations of static schema files and transforms (for VPATH builds) + API_build_copies = $(foreach f,$(API_abs_files),$(subst $(abs_srcdir),$(abs_builddir),$(f))) + CIB_build_copies = $(foreach f,$(CIB_abs_files) $(CIB_abs_xsl),$(subst $(abs_srcdir),$(abs_builddir),$(f))) +-MON_build_copies = $(foreach f,$(MON_abs_files),$(subst $(abs_srcdir),$(abs_builddir),$(f))) ++MON_build_copies = $(foreach f,$(MON_abs_files),$(subst $(abs_srcdir),$(abs_builddir),$(f))) + + # Dynamically generated schema files + API_generated = api/api-result.rng $(foreach base,$(API_versions),api/api-result-$(base).rng) + CIB_generated = pacemaker.rng $(foreach base,$(CIB_versions),pacemaker-$(base).rng) versions.rng ++MON_generated = crm_mon.rng + + CIB_version_pairs = $(call version_pairs,${CIB_numeric_versions}) + CIB_version_pairs_cnt = $(words ${CIB_version_pairs}) +@@ -112,10 +115,10 @@ CIB_version_pairs_last = $(call version_pairs_last,${CIB_version_pairs_cnt},${C + + dist_API_DATA = $(API_files) + dist_CIB_DATA = $(CIB_files) $(CIB_xsl) +-dist_MON_DATA = $(MON_files) + + nodist_API_DATA = $(API_generated) + nodist_CIB_DATA = $(CIB_generated) ++nodist_MON_DATA = $(MON_generated) + + EXTRA_DIST = Readme.md \ + best-match.sh \ +@@ -162,6 +165,21 @@ api/api-result-%.rng: $(API_build_copies) best-match.sh Makefile.am + $(AM_V_at)echo ' ' >> $@ + $(AM_V_SCHEMA)echo '' >> $@ + ++crm_mon.rng: api/crm_mon-$(MON_max).rng ++ $(AM_V_at)echo '' > $@ ++ $(AM_V_at)echo '> $@ ++ $(AM_V_at)echo ' datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">' >> $@ ++ $(AM_V_at)echo ' ' >> $@ ++ $(AM_V_at)echo ' ' >> $@ ++ $(AM_V_at)echo ' ' >> $@ ++ $(AM_V_at)echo ' ' >> $@ ++ $(AM_V_at)echo ' ' >> $@ ++ $(AM_V_at)echo ' ' >> $@ ++ $(AM_V_at)echo ' ' >> $@ ++ $(AM_V_at)echo ' ' >> $@ ++ $(AM_V_at)echo ' ' >> $@ ++ $(AM_V_SCHEMA)echo '' >> $@ ++ + # Dynamically generated top-level CIB schema + pacemaker.rng: pacemaker-$(CIB_max).rng + $(AM_V_SCHEMA)cp $(top_builddir)/xml/$< $@ +@@ -256,7 +274,7 @@ fulldiff: best-match.sh + @echo "# Comparing all changes across all the subsequent increments" + $(call version_diff,${CIB_version_pairs}) + +-CLEANFILES = $(API_generated) $(CIB_generated) ++CLEANFILES = $(API_generated) $(CIB_generated) $(MON_generated) + + clean-local: + if [ "x$(srcdir)" != "x$(builddir)" ]; then \ +diff --git a/xml/crm_mon.rng b/xml/crm_mon.rng +deleted file mode 100644 +index be87fba..0000000 +--- a/xml/crm_mon.rng ++++ /dev/null +@@ -1,16 +0,0 @@ +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-- +1.8.3.1 + + +From 9b6ee6eb5aa1008beebae9d9f6c3889c81c3bbb6 Mon Sep 17 00:00:00 2001 +From: Chris Lumens +Date: Tue, 2 Mar 2021 10:58:15 -0500 +Subject: [PATCH 2/2] Med: Change the schema type of 'expected' and 'call' to + integer. + +Regression in 2.0.3. + +See: rhbz#1931332 +--- + xml/api/crm_mon-2.2.rng | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/xml/api/crm_mon-2.2.rng b/xml/api/crm_mon-2.2.rng +index 88973a4..8e6792b 100644 +--- a/xml/api/crm_mon-2.2.rng ++++ b/xml/api/crm_mon-2.2.rng +@@ -198,7 +198,7 @@ + + + +- ++ + + + +@@ -269,7 +269,7 @@ + + + +- ++ + + + +-- +1.8.3.1 + diff --git a/SPECS/pacemaker.spec b/SPECS/pacemaker.spec index 6290d45..9b8501b 100644 --- a/SPECS/pacemaker.spec +++ b/SPECS/pacemaker.spec @@ -227,7 +227,7 @@ Name: pacemaker Summary: Scalable High-Availability cluster resource manager Version: %{pcmkversion} -Release: %{pcmk_release}%{?dist}.1 +Release: %{pcmk_release}%{?dist}.2 %if %{defined _unitdir} License: GPLv2+ and LGPLv2+ %else @@ -265,6 +265,8 @@ Patch13: 013-pacemakerd.patch Patch14: 014-sbd.patch Patch15: 015-cibsecret.patch Patch16: 016-CVE-2020-25654.patch +Patch17: 017-promotion.patch +Patch18: 018-api-schema.patch # downstream-only commits #Patch100: xxx.patch @@ -962,6 +964,12 @@ exit 0 %license %{nagios_name}-%{nagios_hash}/COPYING %changelog +* Thu Mar 4 2021 Ken Gaillot - 2.0.4-6.2 +- Avoid situation where promotion is not scheduled until next transition +- Avoid pcs failures when Pacemaker records negative call ID in history +- Resolves: rhbz1935240 +- Resolves: rhbz1939533 + * Mon Oct 26 2020 Ken Gaillot - 2.0.4-6.1 - Prevent users from bypassing ACLs by using IPC directly (CVE-2020-25654) - Resolves: rhbz1891528