[ 
https://issues.apache.org/jira/browse/BROOKLYN-227?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Heneveld resolved BROOKLYN-227.
------------------------------------
    Resolution: Fixed

> Exceptions not being logged
> ---------------------------
>
>                 Key: BROOKLYN-227
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-227
>             Project: Brooklyn
>          Issue Type: Bug
>            Reporter: Aled Sage
>
> In 0.9.0-SNAPSHOT, a couple of times now I've hit exceptions that are not 
> logged anywhere within brooklyn debug log. A good example is:
> {noformat}
> 2016-02-20 22:09:00,037 DEBUG b.l.docker.DockerResolver 
> [brooklyn-execmanager-dO9Ptbsx-0]: Resolving location 
> 'docker:j1M7T5XG:(name="my-docker-cloud-vagrant")' with flags 
> provisioner=FixedListMachineProvisioningLocation{id=DtPfBrpb, 
> name=FixedListMachineProvisioningLocation:DtPf},strat
> egies=[DockerAwarePlacementStrategy(MaxContainersPlacementStrategy@j8yVexHt), 
> DockerAwarePlacementStrategy(BreadthFirstPlacementStrategy@ce2SXY0W)],spec.named.name=my-docker-cloud-vagrant,spec.original=my-docker-cloud-vagrant
> 2016-02-20 22:09:00,048 WARN  o.a.b.c.m.r.RebindExceptionHandlerImpl 
> [brooklyn-execmanager-dO9Ptbsx-0]: Rebind: continuing after problem rebinding 
> entity j1M7T5XG (DockerInfrastructureImpl{id=j1M7T5XG})
> java.lang.IllegalStateException: Cannot instantiate location 
> 'LocationDefinition{id='gzuSFMac', name='my-docker-cloud-vagrant', 
> spec='docker:j1M7T5XG:(name="my-docker-cloud-vagrant")', 
> config={provisioner=FixedListMachineProvisioningLocation{id=DtPfBrpb, 
> name=FixedListMachineProvisioningLocation:DtPf}, 
> strategies=[DockerAwarePlacementStrategy(MaxContainersPlacementStrategy@j8yVexHt),
>  DockerAwarePlacementStrategy(BreadthFirstPlacementStrategy@ce2SXY0W)]}}' 
> pointing at docker:j1M7T5XG:(name="my-docker-cloud-vagrant"): 
> java.lang.NullPointerException
>         at 
> org.apache.brooklyn.core.location.BasicLocationRegistry.resolve(BasicLocationRegistry.java:490)
>  ~[brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at 
> org.apache.brooklyn.core.location.BasicLocationRegistry.resolve(BasicLocationRegistry.java:459)
>  ~[brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at 
> brooklyn.entity.container.DockerUtils$ReloadDockerLocation.reloaded(DockerUtils.java:392)
>  ~[brooklyn-clocker-docker-1.1.0-20160125.1743-p1.jar:1.1.0-20160125.1743-p1]
>         at 
> brooklyn.entity.container.docker.DockerInfrastructureImpl.rebind(DockerInfrastructureImpl.java:346)
>  ~[brooklyn-clocker-docker-1.1.0-20160125.1743-p1.jar:1.1.0-20160125.1743-p1]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.AbstractBrooklynObjectRebindSupport.reconstruct(AbstractBrooklynObjectRebindSupport.java:69)
>  ~[brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindIteration.reconstructEverything(RebindIteration.java:623)
>  [brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindIteration.doRun(RebindIteration.java:242)
>  [brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration.doRun(InitialFullRebindIteration.java:69)
>  [brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:265)
>  [brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebindImpl(RebindManagerImpl.java:552)
>  [brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:502)
>  [brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:500)
>  [brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at 
> org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:499)
>  [brooklyn-core-0.9.0-20160125.1743-p1.jar:0.9.0-20160125.1743-p1]
>         at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
> [na:1.7.0_71]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  [na:1.7.0_71]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  [na:1.7.0_71]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
> {noformat}
> See the code change that was made in 
> https://github.com/apache/brooklyn-server/commit/4cb25a42938dcc4383bd831d00841d91b400ac99
>  (where I've just added a comment).
> In that particular situation, we should change it to include the cause in the 
> {{IllegalStateException}} that is thrown. Or alternatively we could log the 
> exception, and then throw the new simplified exception (but I'm not convinced 
> of the point in that).
> We need to be extremely cautious about using {{Exceptions.collapseText}}. 
> There was another situation recently that I need to dig out when I have a few 
> minutes, where another NullPointerException wasn't being logged anywhere, 
> except for that one phrase (I think it was when calling an effector from the 
> REST api).



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

Reply via email to