Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:Update
pacemaker.13547
pacemaker-crmd-dont-abort-for-v2-diff-LRM-refre...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pacemaker-crmd-dont-abort-for-v2-diff-LRM-refresh-if-actions-pending.patch of Package pacemaker.13547
commit 0fd0b906383bd6a7bd7c748b69fe746faa02af39 Author: Ken Gaillot <kgaillot@redhat.com> Date: Tue Feb 27 12:37:10 2018 -0600 Low: crmd: don't abort for v2 diff LRM refresh if actions pending Already the case for v1 diffs, and should apply to v2 as well. diff --git a/crmd/te_callbacks.c b/crmd/te_callbacks.c index 976e57e62..258c9b290 100644 --- a/crmd/te_callbacks.c +++ b/crmd/te_callbacks.c @@ -248,9 +248,7 @@ static void process_resource_updates(const char *node, xmlNode *xml, xmlNode *change, const char *op, const char *xpath) { - xmlNode *cIter = NULL; xmlNode *rsc = NULL; - int num_resources = 0; if (xml == NULL) { return; @@ -262,24 +260,21 @@ process_resource_updates(const char *node, xmlNode *xml, xmlNode *change, CRM_ASSERT(strcmp((const char*)xml->name, XML_LRM_TAG_RESOURCES) == 0); - for (cIter = xml->children; cIter; cIter = cIter->next) { - num_resources++; - } - - if (num_resources > 1) { - /* - * Updates by, or in response to, TE actions will never contain updates - * for more than one resource at a time, so such updates indicate an - * LRM refresh. - * - * In that case, start a new transition rather than check each result - * individually, which can result in _huge_ speedups in large clusters. - * - * Unfortunately, we can only do so when there are no pending actions. - * Otherwise, we could mistakenly throw away those results here, and - * the cluster will stall waiting for them and time out the operation. - */ - crm_debug("Detected LRM refresh - %d resources updated", num_resources); + /* + * Updates by, or in response to, TE actions will never contain updates + * for more than one resource at a time, so such updates indicate an + * LRM refresh. + * + * In that case, start a new transition rather than check each result + * individually, which can result in _huge_ speedups in large clusters. + * + * Unfortunately, we can only do so when there are no pending actions. + * Otherwise, we could mistakenly throw away those results here, and + * the cluster will stall waiting for them and time out the operation. + */ + if ((transition_graph->pending == 0) + && xml->children && xml->children->next) { + crm_log_xml_trace(change, "lrm-refresh"); abort_transition(INFINITY, tg_restart, "LRM Refresh", NULL); return;
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