File pacemaker-scheduler-improve-failed-op-message.patch of Package pacemaker.12462
commit 23aeaaa29064eddf6fe2b3e22a974ef07657c1f6
Author: Ken Gaillot <kgaillot@redhat.com>
Date: Wed May 2 18:23:58 2018 -0500
Log: scheduler: improve failed op message
Particularly, if a probe fails due to an error (as opposed to an unexpected
running status), point the user to the resource-discovery option.
Index: pacemaker-1.1.18+20180430.b12c320f5/cts/CTStests.py
===================================================================
--- pacemaker-1.1.18+20180430.b12c320f5.orig/cts/CTStests.py
+++ pacemaker-1.1.18+20180430.b12c320f5/cts/CTStests.py
@@ -1087,7 +1087,7 @@ class MaintenanceMode(CTSTest):
# fail the resource right after turning Maintenance mode on
# verify it is not recovered until maintenance mode is turned off
if action == "On":
- pats.append(r"pengine.*:\s+warning:.*Processing failed op %s for %s on" % (self.action, self.rid))
+ pats.append(r"pengine.*:\s+warning:.*Processing failed %s of %s on" % (self.action, self.rid))
else:
pats.append(self.templates["Pat:RscOpOK"] % ("stop", self.rid))
pats.append(self.templates["Pat:RscOpOK"] % ("start", self.rid))
@@ -1296,7 +1296,7 @@ class ResourceRecover(CTSTest):
self.debug("Shooting %s aka. %s" % (rsc.clone_id, rsc.id))
pats = []
- pats.append(r"pengine.*:\s+warning:.*Processing failed op %s for (%s|%s) on" % (self.action,
+ pats.append(r"pengine.*:\s+warning:.*Processing failed %s of (%s|%s) on" % (self.action,
rsc.id, rsc.clone_id))
if rsc.managed():
Index: pacemaker-1.1.18+20180430.b12c320f5/lib/pengine/unpack.c
===================================================================
--- pacemaker-1.1.18+20180430.b12c320f5.orig/lib/pengine/unpack.c
+++ pacemaker-1.1.18+20180430.b12c320f5/lib/pengine/unpack.c
@@ -2504,9 +2504,21 @@ unpack_rsc_op_failure(resource_t * rsc,
}
if (rc != PCMK_OCF_NOT_INSTALLED || is_set(data_set->flags, pe_flag_symmetric_cluster)) {
- crm_warn("Processing failed op %s for %s on %s: %s (%d)",
- task, rsc->id, node->details->uname, services_ocf_exitcode_str(rc),
- rc);
+ crm_warn("Processing failed %s of %s on %s: %s " CRM_XS " rc=%d",
+ (is_probe? "probe" : task), rsc->id, node->details->uname,
+ services_ocf_exitcode_str(rc), rc);
+
+ if (is_probe && (rc != PCMK_OCF_OK)
+ && (rc != PCMK_OCF_NOT_RUNNING)
+ && (rc != PCMK_OCF_RUNNING_MASTER)) {
+
+ /* A failed (not just unexpected) probe result could mean the user
+ * didn't know resources will be probed even where they can't run.
+ */
+ crm_notice("If it is not possible for %s to run on %s, see "
+ "the resource-discovery option for location constraints",
+ rsc->id, node->details->uname);
+ }
record_failed_op(xml_op, node, rsc, data_set);