brooklyn-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aled Sage (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (BROOKLYN-354) Rebind failed (when an NingxController entity's hostname sensor was null)
Date Thu, 29 Sep 2016 11:23:20 GMT

    [ https://issues.apache.org/jira/browse/BROOKLYN-354?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15532513#comment-15532513
] 

Aled Sage commented on BROOKLYN-354:
------------------------------------

Looking higher up in the log file, I see this the exception below.

{noformat}
2016-09-29 05:29:46,104 WARN  o.a.b.c.m.r.RebindExceptionHandlerImpl [brooklyn-execmanager-AmX9A0xT-0]:
Rebind: continuing after problem rebinding entity P5hGuILY (NginxControllerImpl{id=P5hGuILY})
java.lang.IllegalStateException: Cannot find way to access port 8000 on NginxControllerImpl{id=P5hGuILY}
from Brooklyn (no host.name)
        at org.apache.brooklyn.core.location.access.BrooklynAccessUtils.getBrooklynAccessibleAddress(BrooklynAccessUtils.java:106)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.entity.proxy.AbstractControllerImpl.inferUrl(AbstractControllerImpl.java:278)
~[brooklyn-software-webapp-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.entity.proxy.nginx.NginxControllerImpl.access$000(NginxControllerImpl.java:67)
~[brooklyn-software-webapp-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.entity.proxy.nginx.NginxControllerImpl$UrlInferencer.get(NginxControllerImpl.java:98)
~[brooklyn-software-webapp-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.entity.proxy.nginx.NginxControllerImpl$UrlInferencer.get(NginxControllerImpl.java:92)
~[brooklyn-software-webapp-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.feed.http.HttpFeed.createHttpClient(HttpFeed.java:363) ~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.feed.http.HttpFeed.preStart(HttpFeed.java:322) ~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.core.feed.AbstractFeed.start(AbstractFeed.java:125) ~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport.addFeeds(BasicEntityRebindSupport.java:169)
[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport.addFeeds(BasicEntityRebindSupport.java:47)
[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.associateAdjunctsWithEntities(RebindIteration.java:650)
[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.doRun(RebindIteration.java:243)
[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration.doRun(InitialFullRebindIteration.java:69)
[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:265)
[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebindImpl(RebindManagerImpl.java:558)
[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:508)
[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:506)
[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:519)
[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_75]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[na:1.7.0_75]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[na:1.7.0_75]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_75]
{noformat}


It has therefore been fixed in mater by the commit:

{noformat}
commit 5faa686bfc4752554eaf20facdffbce6d0850673
Author: Yavor Yanchev <yavor@yanchev.com>
Date:   Tue Aug 16 09:39:48 2016 +0300

    Refactoring HttpFeed to use the new HttpExecutor interface.
{noformat}

We therefore no longer call {{HttpFeed.createHttpClient}} in that same thread (which was calling
{{pollIdentifier.uriProvider.get()}}. Instead that is only called in the subsequently scheduled
job(s). Rebind now works is this situation.

I'll add unit tests that demonstrate this, so as to avoid any regressions in the future.

> Rebind failed (when an NingxController entity's hostname sensor was null)
> -------------------------------------------------------------------------
>
>                 Key: BROOKLYN-354
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-354
>             Project: Brooklyn
>          Issue Type: Bug
>            Reporter: Aled Sage
>
> When restarting Brooklyn (using a version from a couple of months ago - timestamped 20160609.1043),
it failed - the log showed the exception below.
> While offline, the VM for this {{NginxController}} had been terminated.
> The underlying exception means that {{entity.getAttribute(Attributes.HOSTNAME)}} was
null.
> This should not stop rebind from working!
> {noformat}
> 2016-09-29 05:29:55,496 ERROR o.a.b.l.common.BasicLauncher [main]: Subsystem for persistence
had startup error (continuing with startup): org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
Failure rebinding: problem rebinding entity P5hGuILY (NginxControlle
> rImpl{id=P5hGuILY}): Cannot find way to access port 8000 on NginxControllerImpl{id=P5hGuILY}
from Brooklyn (no host.name)
> org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: 
>         at org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:128)
~[brooklyn-utils-common-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebind(RebindManagerImpl.java:513)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.ha.HighAvailabilityManagerImpl.promoteToMaster(HighAvailabilityManagerImpl.java:836)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.ha.HighAvailabilityManagerImpl.checkMaster(HighAvailabilityManagerImpl.java:810)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.ha.HighAvailabilityManagerImpl.publishAndCheck(HighAvailabilityManagerImpl.java:592)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.ha.HighAvailabilityManagerImpl.changeMode(HighAvailabilityManagerImpl.java:315)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.ha.HighAvailabilityManagerImpl.start(HighAvailabilityManagerImpl.java:255)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.launcher.common.BasicLauncher.startPersistence(BasicLauncher.java:644)
[brooklyn-launcher-common-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.launcher.common.BasicLauncher.handlePersistence(BasicLauncher.java:506)
[brooklyn-launcher-common-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.launcher.common.BasicLauncher.start(BasicLauncher.java:424)
[brooklyn-launcher-common-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.cli.Main$LaunchCommand.call(Main.java:461) [brooklyn-cli-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.cli.Main$LaunchCommand.call(Main.java:196) [brooklyn-cli-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.cli.AbstractMain.execCli(AbstractMain.java:252) [brooklyn-cli-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.cli.AbstractMain.execCli(AbstractMain.java:244) [brooklyn-cli-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at io.cloudsoft.amp.Main.main(Main.java:39) [amp-launcher-3.2.1.jar:na]
> Caused by: java.util.concurrent.ExecutionException: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException:
Failure rebinding: problem rebinding entity P5hGuILY (NginxControllerImpl{id=P5hGuILY}): Cannot
find way to access port 8000 on NginxControllerImpl{id=P5h
> GuILY} from Brooklyn (no host.name)
>         at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:1.7.0_75]
>         at java.util.concurrent.FutureTask.get(FutureTask.java:188) ~[na:1.7.0_75]
>         at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)
~[guava-16.0.1.jar:na]
>         at org.apache.brooklyn.util.core.task.BasicTask.get(BasicTask.java:361) ~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebind(RebindManagerImpl.java:511)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         ... 13 common frames omitted
> org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Failure rebinding: problem
rebinding entity P5hGuILY (NginxControllerImpl{id=P5hGuILY}): Cannot find way to access port
8000 on NginxControllerImpl{id=P5hGuILY} from Brooklyn (no host.name)
>         at org.apache.brooklyn.util.exceptions.Exceptions.create(Exceptions.java:386)
~[brooklyn-utils-common-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl.onDoneImpl(RebindExceptionHandlerImpl.java:497)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl.onDone(RebindExceptionHandlerImpl.java:413)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:267)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebindImpl(RebindManagerImpl.java:558)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:508)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:506)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:519)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_75]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
~[na:1.7.0_75]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
~[na:1.7.0_75]
>         at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_75]
> Caused by: java.lang.IllegalStateException: problem rebinding entity P5hGuILY (NginxControllerImpl{id=P5hGuILY})
>         at org.apache.brooklyn.core.mgmt.rebind.RebindExceptionHandlerImpl.onRebindFailed(RebindExceptionHandlerImpl.java:304)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport.addFeeds(BasicEntityRebindSupport.java:172)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport.addFeeds(BasicEntityRebindSupport.java:47)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.associateAdjunctsWithEntities(RebindIteration.java:650)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.doRun(RebindIteration.java:243)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration.doRun(InitialFullRebindIteration.java:69)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:265)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         ... 8 common frames omitted
> Caused by: java.lang.IllegalStateException: Cannot find way to access port 8000 on NginxControllerImpl{id=P5hGuILY}
from Brooklyn (no host.name)
>         at org.apache.brooklyn.core.location.access.BrooklynAccessUtils.getBrooklynAccessibleAddress(BrooklynAccessUtils.java:106)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.entity.proxy.AbstractControllerImpl.inferUrl(AbstractControllerImpl.java:278)
~[brooklyn-software-webapp-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.entity.proxy.nginx.NginxControllerImpl.access$000(NginxControllerImpl.java:67)
~[brooklyn-software-webapp-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.entity.proxy.nginx.NginxControllerImpl$UrlInferencer.get(NginxControllerImpl.java:98)
~[brooklyn-software-webapp-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.entity.proxy.nginx.NginxControllerImpl$UrlInferencer.get(NginxControllerImpl.java:92)
~[brooklyn-software-webapp-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.feed.http.HttpFeed.createHttpClient(HttpFeed.java:363)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.feed.http.HttpFeed.preStart(HttpFeed.java:322) ~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.feed.AbstractFeed.start(AbstractFeed.java:125) ~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         at org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport.addFeeds(BasicEntityRebindSupport.java:169)
~[brooklyn-core-0.10.0-20160609.1043.jar:0.10.0-20160609.1043]
>         ... 13 common frames omitted
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message