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

Aled Sage closed BROOKLYN-501.
------------------------------
       Resolution: Fixed
    Fix Version/s: 0.10.0

Marking as fixed in 0.10.0 because it won't happen with persisted state 
generated after that time.

In terms of rebinding to much older state that happened to use that yaml dsl 
pattern, then please contact dev@brooklyn for help with your specific use-case.

> Rebind to persisted state can fail to create enricher (using default vals 
> from brooklyn.parameters)
> ---------------------------------------------------------------------------------------------------
>
>                 Key: BROOKLYN-501
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-501
>             Project: Brooklyn
>          Issue Type: Bug
>    Affects Versions: 0.9.0
>            Reporter: Aled Sage
>             Fix For: 0.10.0
>
>
> When testing rebind using Brooklyn 0.11.0-rc, for persisted state generated 
> with 0.9.0, it can fail to rebind depending which entities you have deployed 
> (and the failure handling - it causes the entity to not be created - by 
> default we'll report the error and continue). The underlying problem is the 
> same as that in https://issues.apache.org/jira/browse/BROOKLYN-345 (i.e. 
> fixed for persisted state generated with 0.10.0 or later).
> The exception happens when a Clocker enricher is configured with:
> {noformat}
> enricher.keySensor: 
> $brooklyn:sensor($brooklyn:config("brooklyn_dns.hosts.basename.sensor"))
> {noformat}
> The call to {{$brooklyn:config(...)}} returns absent/null, causing 
> {{$brooklyn:sensor(...)}} to fail. Because this happens inside 
> {{enricher.setEntity()}}, it causes the enricher's initialisation to fail.
> Comparing the entity's persisted state with that from a more recent Brooklyn, 
> the newer state contains:
> {noformat}
>   <configKeys>
>     <brooklyn__dns.hosts.basename.sensor>
>       <configKey>
>         <name>brooklyn_dns.hosts.basename.sensor</name>
>         <type>java.lang.String</type>
>         <description>The sensor giving the host basename on entities for 
> which this provides name serving;
> the domain name is appended to the basename coming from that entity
> </description>
>         <defaultValue class="string">entity.id</defaultValue>
>         <reconfigurable>false</reconfigurable>
>         <constraint 
> class="com.google.common.base.Predicates$ObjectPredicate">ALWAYS_TRUE</constraint>
>       </configKey>
>     </brooklyn__dns.hosts.basename.sensor>
> {noformat}
> This is because we fixed bug BROOKLYN-345, where dynamically added config 
> keys (e.g. those from brooklyn.parameters) weren't persisted. Before that 
> fix, we lost on rebind the default value etc.
> {noformat}
> 2017-05-10 07:14:33,852 WARN  120 o.a.b.c.m.r.RebindExceptionHandlerImpl 
> [nager-QLTRiPQR-0] problem adding enricher zpr8jsorz5 
> (MapAggregator{name=org.apache.brooklyn.enricher.stock.MapAggregator, 
> uniqueTag=host-a
> ddress-aggregator, running=true, entity=DynamicGroupImpl{id=f7zw07qpzy}, 
> id=zpr8jsorz5}) to entity f7zw07qpzy (DynamicGroupImpl{id=f7zw07qpzy}); 
> continuing
> java.lang.IllegalArgumentException: Error resolving config 
> enricher.keySensor, 
> $brooklyn:sensorName(config("brooklyn_dns.hosts.basename.sensor")), in 
> org.apache.brooklyn.util.core.task.BasicExecutionContext@2ed7cf83([Wrapped[contextEntity:DynamicGroupImpl{id=f7zw07qpzy}],
>  LocalManagementContext[uJWK6GYB-QLTRiPQR]]): Cannot resolve 
> '$brooklyn:config("brooklyn_dns.hosts.basename.sensor")' as a sensor (got 
> type null
>         at 
> org.apache.brooklyn.util.core.task.ValueResolver.getMaybeInternal(ValueResolver.java:553)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.util.core.task.ValueResolver.getMaybe(ValueResolver.java:323)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.util.core.task.ValueResolver.get(ValueResolver.java:316)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.util.core.task.Tasks.resolveValue(Tasks.java:147)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.config.BasicConfigKey.resolveValue(BasicConfigKey.java:405)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.config.BasicConfigKey.extractValue(BasicConfigKey.java:390)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.resolveRawValueFromContainer(AbstractConfigMapImpl.java:319)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl$3.apply(AbstractConfigMapImpl.java:379)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl$3.apply(AbstractConfigMapImpl.java:375)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.getConfigImpl(AbstractConfigMapImpl.java:391)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.getConfig(AbstractConfigMapImpl.java:109)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.objs.AbstractConfigurationSupportInternal.get(AbstractConfigurationSupportInternal.java:165)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.enricher.stock.MapAggregator.getSourceSensors(MapAggregator.java:64)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.enricher.stock.AbstractMultipleSensorAggregator.setEntityLoadingConfig(AbstractMultipleSensorAggregator.java:55)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.enricher.stock.AbstractAggregator.setEntity(AbstractAggregator.java:99)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.entity.AbstractEntity$BasicEnricherSupport.add(AbstractEntity.java:1695)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport.addEnrichers(BasicEntityRebindSupport.java:157)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport.addEnrichers(BasicEntityRebindSupport.java:56)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindIteration.associateAdjunctsWithEntities(RebindIteration.java:649)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindIteration.doRun(RebindIteration.java:243)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration.doRun(InitialFullRebindIteration.java:69)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:265)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebindImpl(RebindManagerImpl.java:560)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:510)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl$3.call(RebindManagerImpl.java:508)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:529)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
>         at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
> Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: 
> Cannot resolve '$brooklyn:config("brooklyn_dns.hosts.basename.sensor")' as a 
> sensor (got type null
>         at 
> org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:130)[141:org.apache.brooklyn.utils-common:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.util.time.Durations.get(Durations.java:63)[141:org.apache.brooklyn.utils-common:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.util.time.Durations.get(Durations.java:68)[141:org.apache.brooklyn.utils-common:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.util.core.task.ValueResolver.getMaybeInternal(ValueResolver.java:488)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         ... 29 more
> Caused by: java.util.concurrent.ExecutionException: 
> org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Cannot 
> resolve '$brooklyn:config("brooklyn_dns.hosts.basename.sensor")' as a sensor 
> (got type null
>         at 
> java.util.concurrent.FutureTask.report(FutureTask.java:122)[:1.8.0_121]
>         at 
> java.util.concurrent.FutureTask.get(FutureTask.java:192)[:1.8.0_121]
>         at 
> com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)[68:com.google.guava:18.0.0]
>         at 
> org.apache.brooklyn.util.core.task.BasicTask.get(BasicTask.java:375)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.util.time.Durations.get(Durations.java:43)[141:org.apache.brooklyn.utils-common:0.11.0.20170504_1742]
>         ... 31 more
> Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: 
> Cannot resolve '$brooklyn:config("brooklyn_dns.hosts.basename.sensor")' as a 
> sensor (got type null
>         at 
> org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:130)[141:org.apache.brooklyn.utils-common:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:120)[118:org.apache.brooklyn.camp:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.util.core.task.ValueResolver$2.call(ValueResolver.java:474)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:363)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         ... 5 more
> Caused by: java.util.concurrent.ExecutionException: 
> java.lang.IllegalStateException: Cannot resolve 
> '$brooklyn:config("brooklyn_dns.hosts.basename.sensor")' as a sensor (got 
> type null
>         at 
> java.util.concurrent.FutureTask.report(FutureTask.java:122)[:1.8.0_121]
>         at 
> java.util.concurrent.FutureTask.get(FutureTask.java:192)[:1.8.0_121]
>         at 
> com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)[68:com.google.guava:18.0.0]
>         at 
> org.apache.brooklyn.util.core.task.BasicTask.get(BasicTask.java:375)[120:org.apache.brooklyn.core:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:114)[118:org.apache.brooklyn.camp:0.11.0.20170504_1742]
>         ... 7 more
> Caused by: java.lang.IllegalStateException: Cannot resolve 
> '$brooklyn:config("brooklyn_dns.hosts.basename.sensor")' as a sensor (got 
> type null
>         at 
> org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslSensorSupplier$1.resolve(DslComponent.java:715)[118:org.apache.brooklyn.camp:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslSensorSupplier$1.resolve(DslComponent.java:713)[118:org.apache.brooklyn.camp:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslSensorSupplier$1.call(DslComponent.java:696)[118:org.apache.brooklyn.camp:0.11.0.20170504_1742]
>         at 
> org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslSensorSupplier$1.call(DslComponent.java:693)[118:org.apache.brooklyn.camp:0.11.0.20170504_1742]
>         ... 5 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to