brooklyn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (BROOKLYN-322) On rebind, entity temporarily (incorrectly) reports serviceUp=false
Date Wed, 03 Aug 2016 19:49:20 GMT


ASF GitHub Bot commented on BROOKLYN-322:

Github user aledsage commented on the issue:
    Thanks @bostko - merging now.

> On rebind, entity temporarily (incorrectly) reports serviceUp=false
> -------------------------------------------------------------------
>                 Key: BROOKLYN-322
>                 URL:
>             Project: Brooklyn
>          Issue Type: Bug
>            Reporter: Aled Sage
> With Brooklyn 0.10.0-SNAPSHOT (but also with older versions, I presume)...
> When rebinding to many entities, some software processes temporarily show serviceUp=false
before going back to showing the correct serviceUp=true.
> The problem is with the polling of their feeds. It starts polling immediately, rather
than waiting for the entity to be managed. This can cause some feeds to throw an exception
(e.g. when {{SoftwareProcessImpl.connectServiceUpIsRunning}} calls {{driver.isRunning()}},
and that tries to execute an ssh command). The exception causes the feed to set it to whatever
value the {{onException}} tells it to use.
> It is more likely to happen when there are many entities, because the entities will be
unmanaged for longer.
> The solution is to not poll when the entity is not managed.
> This is a simple fix in ((Poller}}.
> It might cause problems for those trying to use a Poller to poll just once: it might
skip that single poll because the entity is unmanaged. I think we can ignore that. I don't
know of any use-cases doing that. Also, I suspect that it might be a good thing! On rebind
we don't necessarily want to do that single poll again, and when the feed is first registered
we'd hope that it is done when the entity is managed (if done in {{SoftwareProcess.connectSensors()}},
but not if done in the entity's init method).
> We could revisit this in the future, so that if the entity is unmanaged (but e think
it will soon be managed), then we reschedule it for when the entity is actually managed.

This message was sent by Atlassian JIRA

View raw message