Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:GA
pacemaker.13547
pacemaker-libpe_status-correct-default-timeout-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pacemaker-libpe_status-correct-default-timeout-for-probes.patch of Package pacemaker.13547
commit 78802fff1db6b800cc179627070fdc1a2c6d7084 Author: Ken Gaillot <kgaillot@redhat.com> Date: Wed Dec 6 11:22:34 2017 -0600 Fix: libpe_status: use correct default timeout for probes Previously, if timeout were set in op_defaults, probes without an explicitly configured timeout would use that value rather than the minimum-interval monitor's. This was contrary the behavior of default-action-timeout, which would not override the minimum-interval monitor's value. Now, timeout in op_defaults behaves the same as default-action-timeout. Index: pacemaker-1.1.16+20170320.77ea74d/lib/pengine/utils.c =================================================================== --- pacemaker-1.1.16+20170320.77ea74d.orig/lib/pengine/utils.c +++ pacemaker-1.1.16+20170320.77ea74d/lib/pengine/utils.c @@ -703,6 +703,18 @@ find_min_interval_mon(resource_t * rsc, return op; } +/*! + * \brief Unpack operation XML into an action structure + * + * Unpack an operation's meta-attributes (normalizing the interval, timeout, + * and start delay values as integer milliseconds), requirements, and + * failure policy. + * + * \param[in,out] action Action to unpack into + * \param[in] xml_obj Operation XML (or NULL if all defaults) + * \param[in] container Resource that contains affected resource, if any + * \param[in] data_set Cluster state + */ void unpack_operation(action_t * action, xmlNode * xml_obj, resource_t * container, pe_working_set_t * data_set) @@ -716,6 +728,23 @@ unpack_operation(action_t * action, xmlN CRM_CHECK(action->rsc != NULL, return); + // Probe timeouts default to minimum-interval monitor's + if ((xml_obj == NULL) && action && + safe_str_eq(action->task, RSC_STATUS) && (interval == 0)) { + + xmlNode *min_interval_mon = find_min_interval_mon(action->rsc, FALSE); + + if (min_interval_mon) { + value = crm_element_value(min_interval_mon, XML_ATTR_TIMEOUT); + if (value) { + crm_trace("\t%s defaults to minimum-interval monitor's timeout '%s'", + action->uuid, value); + g_hash_table_insert(action->meta, strdup(XML_ATTR_TIMEOUT), + strdup(value)); + } + } + } + // Cluster-wide <op_defaults> <meta_attributes> unpack_instance_attributes(data_set->input, data_set->op_defaults, XML_TAG_META_SETS, NULL, action->meta, NULL, FALSE, data_set->now); @@ -994,16 +1023,6 @@ unpack_operation(action_t * action, xmlN field = XML_ATTR_TIMEOUT; value = g_hash_table_lookup(action->meta, field); - if (value == NULL && xml_obj == NULL && safe_str_eq(action->task, RSC_STATUS) && interval == 0) { - xmlNode *min_interval_mon = find_min_interval_mon(action->rsc, FALSE); - - if (min_interval_mon) { - value = crm_element_value(min_interval_mon, XML_ATTR_TIMEOUT); - pe_rsc_trace(action->rsc, - "\t%s uses the timeout value '%s' from the minimum interval monitor", - action->uuid, value); - } - } if (value == NULL) { value = pe_pref(data_set->config_hash, "default-action-timeout"); }
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