You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brooklyn.apache.org by "Aled Sage (JIRA)" <ji...@apache.org> on 2015/05/13 14:09:00 UTC
[jira] [Created] (BROOKLYN-145) SameServerEntity reported
incorrectly (temporary) "up" before children started
Aled Sage created BROOKLYN-145:
----------------------------------
Summary: SameServerEntity reported incorrectly (temporary) "up" before children started
Key: BROOKLYN-145
URL: https://issues.apache.org/jira/browse/BROOKLYN-145
Project: Brooklyn
Issue Type: Bug
Affects Versions: 0.7.0-SNAPSHOT
Reporter: Aled Sage
The ComputeServiceIndicatorsFromChildrenAndMembers.UP_QUORUM_CHECK behaviour recently changed: it has default atLeastOneUnlessEmpty, and filters out those children/members that have not yet started.
The consequence for SameServerEntity is that it incorrectly reports "up" temporarily at the beginning of startup. When its children were in expected states (i.e. none were on-fire, and all were still off because start() had not been called on them), then the SameServerEntity reported "up". This was because all non-started children where filtered out, so the quorum check treated it as "empty" (i.e. no children/members).
A customer is using a SameServerEntity to start two processes, and has another entity configured with an INSTALL_LATCH to block until the SameServerEntity is up. The temporary "up" was enough to unblock the latch, causing the other entity to continue prematurely.
I suggest we change the default in SameServerEntity. For example:
{noformat}
@Override
protected void initEnrichers() {
super.initEnrichers();
addEnricher(ServiceStateLogic.newEnricherFromChildren()
.configure(ComputeServiceIndicatorsFromChildrenAndMembers.UP_QUORUM_CHECK, QuorumCheck.QuorumChecks.allAndAtLeastOne()));
}
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)