HomeClusterLabs Projects

Low: libcrmservice: don't consider a cancelled recurring operation as failed

Description

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.

Details

Provenance
kgaillotAuthored on May 9 2018, 5:04 PM
Parents
rP5c03512483d7: Merge pull request #1480 from kgaillot/changes20
Branches
Unknown
Tags
Unknown

Event Timeline