Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3:Rings:1-MinimalX
pacemaker
pacemaker-pengine-recovery-demote-OCF_NOT_RUNNI...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pacemaker-pengine-recovery-demote-OCF_NOT_RUNNING.patch of Package pacemaker
commit 93af2f90fd6687c892c9580b5b6dbedb3a6fb6f7 Author: Andrew Beekhof <andrew@beekhof.net> Date: Fri Nov 4 14:08:23 2016 +1100 Fix: Improve recovery when demote fails with OCF_NOT_RUNNING If combined with on-fail=restart, this patch allows the resource to stop+start+promote in a single transition. Related: rhbz#1391671 diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c index a4d68452a..2b5bdf691 100644 --- a/lib/pengine/unpack.c +++ b/lib/pengine/unpack.c @@ -2640,13 +2640,17 @@ unpack_rsc_op_failure(resource_t * rsc, node_t * node, int rc, xmlNode * xml_op, * setting role=slave is not dangerous because no master will be * promoted until the failed resource has been fully stopped */ - rsc->next_role = RSC_ROLE_STOPPED; if (action->on_fail == action_fail_block) { rsc->role = RSC_ROLE_MASTER; + rsc->next_role = RSC_ROLE_STOPPED; + + } else if(rc == PCMK_OCF_NOT_RUNNING) { + rsc->role = RSC_ROLE_STOPPED; } else { crm_warn("Forcing %s to stop after a failed demote action", rsc->id); rsc->role = RSC_ROLE_SLAVE; + rsc->next_role = RSC_ROLE_STOPPED; } } else if (compare_version("2.0", op_version) > 0 && safe_str_eq(task, CRMD_ACTION_START)) { @@ -3051,6 +3055,7 @@ update_resource_state(resource_t * rsc, node_t * node, xmlNode * xml_op, const c } } + gboolean unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, xmlNode ** last_failure, enum action_fail_response * on_fail, pe_working_set_t * data_set) @@ -3265,7 +3270,7 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, xmlNode ** last } done: - pe_rsc_trace(rsc, "Resource %s after %s: role=%s", rsc->id, task, role2text(rsc->role)); + pe_rsc_trace(rsc, "Resource %s after %s: role=%s, next=%s", rsc->id, task, role2text(rsc->role), role2text(rsc->next_role)); return TRUE; }
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