HomeClusterLabs Projects

Fix: libcluster: overhaul peer cache management

Description

Fix: libcluster: overhaul peer cache management

Previously, peer caches could get into buggy states (for example, as described
in RH BZ#1193499, exiting peers would not always be removed from the cache,
causing "member weirdness" messages and other problems if a newly added node
reused the former peer's node ID). Mainly this was because cache
management was left to daemons' peer status callbacks, and an external command
("crm_node -R") was needed to clear a node from the cache.

Now, cache management is handled within the libcluster routines, so clients
don't need to.

Additionally, these changes fix some use-after-free bugs where callers
tried to use a node object that had been reaped by libcluster, and
an issue where the cib purged lost nodes but not evicted ones.

Details

Provenance
kgaillotAuthored on Jun 1 2015, 12:27 PM
Parents
rPa32f376f092a: Fix: attrd: handle removals of cluster peers and remote peers consistently
Branches
Unknown
Tags
Unknown

Event Timeline