HomeClusterLabs Projects

Fix: pengine: create a pseudo-fence for guest node recovery

Description

Fix: pengine: create a pseudo-fence for guest node recovery

If a guest node needs to be recovered, the PE would previously order actions
in relation to the stop action for the guest's container resource, if one
was scheduled.

This had problems: for implied stops due to fencing the guest's host, there
would be no stop action, so no ordering could be done; ordering in relation to
the stop action made stonith_constraints() mistakenly assume that the host node
(the node for the stop action) was the fence target, and thus mistakenly mark
the wrong stops/demotes as implied; and, clone notifications for fence events
would not get called for guest node recoveries, whether explicit or implied.

Now, a fence pseudo-event is created for guest node recovery, regardless of
whether there is an explicit stop action scheduled for the container. This
addresses all those issues, and will allow the crmd to be able to detect
implied stops.

This also allows us to simplify the implied stop/demote detection, since we
will check the pseudo-op for implied actions -- we don't need to check the
real fence op for implied actions on guest nodes.

Details

Provenance
kgaillotAuthored on Apr 15 2016, 2:10 PM
Parents
rPb11887869723: Test: pengine: add regression test for when a guest node's host goes away
Branches
Unknown
Tags
Unknown

Event Timeline