[ 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)