HomeClusterLabs Projects

Fix: get_cluster_type: failing concurrent tool invocations on heartbeat

Description

Fix: get_cluster_type: failing concurrent tool invocations on heartbeat

When we try to guess the cluster type with a "trial registration"
to the heartbeat api, try to register as "casual" (anonymous) client.

If we try to register as "non-casual", or "named" client,
from the heartbeat API point of view, we try to register as
a specific service provider. Heartbeat does not allow multiple
registrations of the same service provider.

That results in for example

WARN: duplicate client add request [crm_node]
ERROR: api_process_registration_msg: cannot add client()

and all but one concurrent invokations of some tool will fail.

This seems to have been broken for quite a while now. But since it only
triggers for concurrent invocations of the same tool, no-one seems to
have noticed, or at least not reported.

There is a simple workaround: export HA_cluster_type=heartbeat
(which avoids this trial registration probing altogether)

Details

Provenance
Lars Ellenberg <lars.ellenberg@linbit.com>Authored on Mar 7 2014, 9:08 AM
Parents
rPbd3045bf9ed4: Merge pull request #455 from gao-yan/on-disk-cib-corrupt-2
Branches
Unknown
Tags
Unknown

Event Timeline