HomeClusterLabs Projects

Fix: crmd: always write faked failures to CIB whenever possible

Description

Fix: crmd: always write faked failures to CIB whenever possible

Previously, when the crmd had to fake an LRM result, it would call
process_lrm_event() as long as an lrm_state was available. However, if the
lrm_state was disconnected and did not have the resource info cached (e.g. when
attempting to recover a resource on a remote node whose connection has just
died), then the eventual call to do_update_resource() would be unable to write
the result to the CIB, and the PE would never learn about it.

Now, when faking a result, we check that the resource info is available from
the lrm_state before attempting to process the event normally. If not, we call
do_update_resource() directly with created resource info, the same as is done
when an lrm_state is not available.

Details

Provenance
kgaillotAuthored on Mar 1 2018, 4:31 PM
Parents
rP71d01e9707c5: Refactor: liblrmd: add function to create resource info structure
Branches
Unknown
Tags
Unknown

Event Timeline