[ 
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 <ya...@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)

Reply via email to