ClusterLabs/pacemaker — pull request #456 by lge (2014-03-07 14:24:36+00:00)
Title: 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)