Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP4
pacemaker.10805
pacemaker-libcrmservice-dont-consider-a-cancell...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pacemaker-libcrmservice-dont-consider-a-cancelled-recurring-operation-as-failed.patch of Package pacemaker.10805
commit abec371d2bad88f5cb23f05ebb115f00466c01c3 Author: Ken Gaillot <kgaillot@redhat.com> Date: Wed May 9 16:04:10 2018 -0500 Low: libcrmservice: don't consider a cancelled recurring operation as failed This takes care of an recurring (pun intended) and annoying regression test issue when cancelling LSB monitors. If an instance of the recurring operation was *not* in-flight at the time, services_action_cancel() would set the operation status to cancelled and leave the rc alone (which would be 0). If an instance *was* in-flight, the instance would be killed, and the child exit handler would set the status to error and the rc to PCMK_OCF_SIGNAL (which would get mapped to PCMK_OCF_UNKNOWN_ERROR for client notification). The result would cause the regression test ignore the notification and get a timeout instead. Now, the exit handler also sets status cancelled and rc 0 in this situation. This should benefit actual cluster usage in the same situation, though those effects have not been extensively traced. The behavioral difference would be in process_lrm_event(). Most likely it avoids spurious monitor failures. diff --git a/lib/services/services_linux.c b/lib/services/services_linux.c index 6263cb14d..bd22777b9 100644 --- a/lib/services/services_linux.c +++ b/lib/services/services_linux.c @@ -291,9 +291,16 @@ operation_finished(mainloop_child_t * p, pid_t pid, int core, int signo, int exi op->status = PCMK_LRM_OP_TIMEOUT; op->rc = PCMK_OCF_TIMEOUT; + } else if (op->cancel) { + /* If an in-flight recurring operation was killed because it was + * cancelled, don't treat that as a failure. + */ + crm_info("%s - terminated with signal %d", prefix, signo); + op->status = PCMK_LRM_OP_CANCELLED; + op->rc = PCMK_OCF_OK; + } else { - do_crm_log_unlikely((op->cancel) ? LOG_INFO : LOG_WARNING, - "%s - terminated with signal %d", prefix, signo); + crm_warn("%s - terminated with signal %d", prefix, signo); op->status = PCMK_LRM_OP_ERROR; op->rc = PCMK_OCF_SIGNAL; }
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