Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
pacemaker.8750
pacemaker-pengine-allow-all-resources-to-stop-p...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pacemaker-pengine-allow-all-resources-to-stop-prior-to-probes-completing.patch of Package pacemaker.8750
commit 3a34feda66fea579f86aac6b525fddc4b68d00ff Author: Andrew Beekhof <andrew@beekhof.net> Date: Thu Nov 2 13:36:28 2017 +1100 Fix: PE: Allow all resources to stop prior to probes completing - Avoids transition loops, particularly with bundles - Fix docker/remote probe ordering for bundles Index: pacemaker-1.1.16+20170320.77ea74d/pengine/graph.c =================================================================== --- pacemaker-1.1.16+20170320.77ea74d.orig/pengine/graph.c +++ pacemaker-1.1.16+20170320.77ea74d/pengine/graph.c @@ -176,13 +176,34 @@ rsc_expand_action(action_t * action) static enum pe_graph_flags graph_update_action(action_t * first, action_t * then, node_t * node, enum pe_action_flags first_flags, enum pe_action_flags then_flags, - enum pe_ordering type) + action_wrapper_t *order) { enum pe_graph_flags changed = pe_graph_none; + enum pe_ordering type = order->type; gboolean processed = FALSE; /* TODO: Do as many of these in parallel as possible */ + if(is_set(type, pe_order_implies_then_on_node)) { + /* Normally we want the _whole_ 'then' clone to + * restart if 'first' is restarted, so then->node is + * needed. + * + * However for unfencing, we want to limit this to + * instances on the same node as 'first' (the + * unfencing operation), so first->node is supplied. + * + * Swap the node, from then on we can can treat it + * like any other 'pe_order_implies_then' + */ + + clear_bit(type, pe_order_implies_then_on_node); + set_bit(type, pe_order_implies_then); + node = first->node; + } + + clear_bit(first_flags, pe_action_pseudo); + if (type & pe_order_implies_then) { processed = TRUE; if (then->rsc) { @@ -575,29 +596,8 @@ update_action(action_t * then) * constraint to instances on the supplied node * */ - int otype = other->type; node_t *node = then->node; - - if(is_set(otype, pe_order_implies_then_on_node)) { - /* Normally we want the _whole_ 'then' clone to - * restart if 'first' is restarted, so then->node is - * needed. - * - * However for unfencing, we want to limit this to - * instances on the same node as 'first' (the - * unfencing operation), so first->node is supplied. - * - * Swap the node, from then on we can can treat it - * like any other 'pe_order_implies_then' - */ - - clear_bit(otype, pe_order_implies_then_on_node); - set_bit(otype, pe_order_implies_then); - node = first->node; - } - clear_bit(first_flags, pe_action_pseudo); - - changed |= graph_update_action(first, then, node, first_flags, then_flags, otype); + changed |= graph_update_action(first, then, node, first_flags, then_flags, other); /* 'first' was for a complex resource (clone, group, etc), * create a new dependency if necessary Index: pacemaker-1.1.16+20170320.77ea74d/pengine/native.c =================================================================== --- pacemaker-1.1.16+20170320.77ea74d.orig/pengine/native.c +++ pacemaker-1.1.16+20170320.77ea74d/pengine/native.c @@ -2867,18 +2867,6 @@ native_create_probe(resource_t * rsc, no top, reload_key(rsc), NULL, pe_order_optional, data_set); - if(node->details->shutdown == FALSE - && is_not_set(rsc->flags, pe_rsc_failed) - && rsc->next_role != RSC_ROLE_STOPPED) { - /* Avoid trying to move resources before we know the location - * elsewhere, but stopping should always be allowed. - * Especially if the resource has failed. - */ - custom_action_order(rsc, NULL, probe, - rsc, generate_op_key(rsc->id, RSC_STOP, 0), NULL, - pe_order_optional, data_set); - } - if(is_set(rsc->flags, pe_rsc_fence_device) && is_set(data_set->flags, pe_flag_enable_unfencing)) { /* Normally rsc.start depends on probe complete which depends * on rsc.probe. But this can't be the case in this scenario as
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