Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP5:Update
pacemaker.9287
bug-914761_pacemaker-pengine-not-reschedule-unn...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bug-914761_pacemaker-pengine-not-reschedule-unneeded-monitor.patch of Package pacemaker.9287
commit 694a3f0b2e1a870b26dd748aa03b3d152c55c2cc Author: Gao,Yan <ygao@suse.com> Date: Wed Feb 25 14:05:14 2015 +0100 Fix: pengine: Do not reschedule monitors that are no longer needed while resource definitions have changed diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h index da20f64..3c4a734 100644 --- a/include/crm/pengine/status.h +++ b/include/crm/pengine/status.h @@ -183,6 +183,7 @@ struct node_s { # define pe_rsc_try_reload 0x00001000ULL # define pe_rsc_reload 0x00002000ULL +# define pe_rsc_reschedule_monitor 0x00004000ULL # define pe_rsc_failed 0x00010000ULL # define pe_rsc_shutdown 0x00020000ULL diff --git a/pengine/allocate.c b/pengine/allocate.c index 0994a87..999b4e6 100644 --- a/pengine/allocate.c +++ b/pengine/allocate.c @@ -274,17 +274,15 @@ check_action_definition(resource_t * rsc, node_t * active_node, xmlNode * xml_op crm_element_value(xml_op, XML_ATTR_TRANSITION_MAGIC)); if (interval > 0) { +#if 0 action_t *op = NULL; -#if 0 /* Always reload/restart the entire resource */ op = custom_action(rsc, start_key(rsc), RSC_START, NULL, FALSE, TRUE, data_set); update_action_flags(op, pe_action_allow_reload_conversion); #else /* Re-sending the recurring op is sufficient - the old one will be cancelled automatically */ - op = custom_action(rsc, key, task, NULL, FALSE, TRUE, data_set); - custom_action_order(rsc, start_key(rsc), NULL, - NULL, NULL, op, pe_order_runnable_left, data_set); + set_bit(rsc->flags, pe_rsc_reschedule_monitor); #endif } else if (digest_restart) { diff --git a/pengine/native.c b/pengine/native.c index 3f1807e..46cf01e 100644 --- a/pengine/native.c +++ b/pengine/native.c @@ -725,6 +725,10 @@ RecurringOp(resource_t * rsc, action_t * start, node_t * node, if (possible_matches == NULL) { is_optional = FALSE; pe_rsc_trace(rsc, "Marking %s manditory: not active", key); + + } else if (is_set(rsc->flags, pe_rsc_reschedule_monitor)) { + is_optional = FALSE; + } else { g_list_free(possible_matches); }
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