Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
When testing rebind with 1.0.0-SNAPSHOT, I hit the exception shown below.
2017-11-08T15:05:56,959 WARN 123 o.a.b.c.m.r.RebindExceptionHandlerImpl [tures-1-thread-1] problem adding policy tfr7lcfdmb (ServiceReplacer{id=tfr7lcfdmb, name=Service Replacer, running=true}) to entity fo01banbds (DynamicCluster Impl{id=fo01banbds}); continuing java.lang.IllegalArgumentException: Error resolving Resolving config failureSensorToMonitor, $brooklyn:sensorName("ha.entityFailed"), in org.apache.brooklyn.util.core.task.BasicExecutionContext@5a3b9114([LocalManagementContext[CFq6 B51H-jFJzr6KD], BROOKLYN-SERVER]): Context entity not available when trying to evaluate Brooklyn DSL at org.apache.brooklyn.util.core.task.ValueResolver.getMaybeInternal(ValueResolver.java:570) ~[?:?] at org.apache.brooklyn.util.core.task.ValueResolver.getMaybe(ValueResolver.java:324) ~[?:?] at org.apache.brooklyn.util.core.task.ValueResolver.get(ValueResolver.java:317) ~[?:?] at org.apache.brooklyn.util.core.task.Tasks.resolveValue(Tasks.java:159) ~[?:?] at org.apache.brooklyn.core.config.BasicConfigKey.resolveValue(BasicConfigKey.java:447) ~[?:?] at org.apache.brooklyn.core.config.BasicConfigKey.extractValue(BasicConfigKey.java:432) ~[?:?] at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.resolveRawValueFromContainerIgnoringDeprecatedNames(AbstractConfigMapImpl.java:352) ~[?:?] at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.resolveRawValueFromContainer(AbstractConfigMapImpl.java:324) ~[?:?] at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl$3.apply(AbstractConfigMapImpl.java:432) ~[?:?] at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl$3.apply(AbstractConfigMapImpl.java:428) ~[?:?] at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.getConfigImpl(AbstractConfigMapImpl.java:445) ~[?:?] at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.getConfig(AbstractConfigMapImpl.java:113) ~[?:?] at org.apache.brooklyn.core.objs.AbstractConfigurationSupportInternal.get(AbstractConfigurationSupportInternal.java:161) ~[?:?] at org.apache.brooklyn.core.objs.AbstractEntityAdjunct.getConfig(AbstractEntityAdjunct.java:360) ~[?:?] at org.apache.brooklyn.policy.ha.ServiceReplacer.setEntity(ServiceReplacer.java:114) ~[?:?] at org.apache.brooklyn.core.entity.AbstractEntity$BasicPolicySupport.add(AbstractEntity.java:1378) ~[?:?] at org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport.addPolicies(BasicEntityRebindSupport.java:122) ~[?:?] at org.apache.brooklyn.core.mgmt.rebind.BasicEntityRebindSupport.addPolicies(BasicEntityRebindSupport.java:55) ~[?:?] at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.associateAdjunctsWithEntities(RebindIteration.java:658) ~[?:?] at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.doRun(RebindIteration.java:260) ~[?:?] at org.apache.brooklyn.core.mgmt.rebind.InitialFullRebindIteration.doRun(InitialFullRebindIteration.java:69) ~[?:?] at org.apache.brooklyn.core.mgmt.rebind.RebindIteration.run(RebindIteration.java:282) ~[?:?] at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebindImpl(RebindManagerImpl.java:547) ~[?:?] at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.lambda$rebind$0(RebindManagerImpl.java:503) ~[?:?] at org.apache.brooklyn.util.core.task.BasicExecutionContext$1.call(BasicExecutionContext.java:143) ~[?:?] at org.apache.brooklyn.util.core.task.BasicExecutionContext$1.call(BasicExecutionContext.java:141) ~[?:?] at org.apache.brooklyn.util.core.task.BasicExecutionContext.runInSameThread(BasicExecutionContext.java:227) ~[?:?] at org.apache.brooklyn.util.core.task.BasicExecutionContext.get(BasicExecutionContext.java:141) ~[?:?] at org.apache.brooklyn.core.mgmt.rebind.RebindManagerImpl.rebind(RebindManagerImpl.java:502) ~[?:?] at org.apache.brooklyn.launcher.common.BasicLauncher.startPersistenceWithoutHA(BasicLauncher.java:657) ~[?:?] at org.apache.brooklyn.launcher.common.BasicLauncher.startPersistence(BasicLauncher.java:620) ~[?:?] at org.apache.brooklyn.launcher.common.BasicLauncher.handlePersistence(BasicLauncher.java:516) ~[?:?] at org.apache.brooklyn.launcher.common.BasicLauncher.startPartTwo(BasicLauncher.java:438) ~[?:?] at org.apache.brooklyn.launcher.osgi.OsgiLauncherImpl.startOsgi(OsgiLauncherImpl.java:116) ~[?:?] at Proxy36c6dcae_9094_41a8_8fc0_83f48d7eff6b.startOsgi(Unknown Source) ~[?:?] at org.apache.brooklyn.launcher.osgi.start.OsgiLauncherCompleter.init(OsgiLauncherCompleter.java:36) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?] at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:980) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:736) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:848) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811) ~[?:?] at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) ~[?:?] at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255) ~[?:?] at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186) ~[?:?] at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:704) ~[?:?] at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:410) ~[?:?] at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:275) ~[?:?] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:300) ~[?:?] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:269) ~[?:?] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:265) ~[?:?] at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:255) ~[?:?] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500) ~[?:?] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433) ~[?:?] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725) ~[?:?] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463) ~[?:?] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422) ~[?:?] at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1179) ~[?:?] at org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730) ~[?:?] at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485) ~[?:?] at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4563) ~[?:?] at org.apache.felix.framework.Felix.startBundle(Felix.java:2173) ~[?:?] at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) ~[?:?] at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984) ~[?:?] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1346) ~[?:?] at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:891) ~[?:?] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1233) ~[?:?] at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$0(FeaturesServiceImpl.java:1132) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?] at java.lang.Thread.run(Thread.java:748) [?:?] Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: at org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:129) ~[?:?] at org.apache.brooklyn.util.time.Durations.get(Durations.java:63) ~[?:?] at org.apache.brooklyn.util.time.Durations.get(Durations.java:68) ~[?:?] at org.apache.brooklyn.util.core.task.ValueResolver.getMaybeInternal(ValueResolver.java:499) ~[?:?] ... 76 more Caused by: java.util.concurrent.ExecutionException: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Context entity not available when trying to evaluate Brooklyn DSL at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?] at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:?] at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[?:?] at org.apache.brooklyn.util.core.task.BasicTask.get(BasicTask.java:383) ~[?:?] at org.apache.brooklyn.util.time.Durations.get(Durations.java:43) ~[?:?] at org.apache.brooklyn.util.time.Durations.get(Durations.java:68) ~[?:?] at org.apache.brooklyn.util.core.task.ValueResolver.getMaybeInternal(ValueResolver.java:499) ~[?:?] ... 76 more Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: at org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:129) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:117) ~[?:?] at org.apache.brooklyn.util.core.task.ValueResolver$2.call(ValueResolver.java:485) ~[?:?] at org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:364) ~[?:?] at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:565) ~[?:?] ... 4 more Caused by: java.util.concurrent.ExecutionException: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: Context entity not available when trying to evaluate Brooklyn DSL at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?] at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:?] at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[?:?] at org.apache.brooklyn.util.core.task.BasicTask.get(BasicTask.java:383) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:111) ~[?:?] at org.apache.brooklyn.util.core.task.ValueResolver$2.call(ValueResolver.java:485) ~[?:?] at org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:364) ~[?:?] at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:565) ~[?:?] ... 4 more Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: at org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:129) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:117) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslSensorSupplier$1.resolve(DslComponent.java:701) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslSensorSupplier$1.call(DslComponent.java:695) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslSensorSupplier$1.call(DslComponent.java:692) ~[?:?] at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:565) ~[?:?] ... 4 more Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Context entity not available when trying to evaluate Brooklyn DSL at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?] at java.util.concurrent.FutureTask.get(FutureTask.java:192) ~[?:?] at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) ~[?:?] at org.apache.brooklyn.util.core.task.BasicTask.get(BasicTask.java:383) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:111) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslSensorSupplier$1.resolve(DslComponent.java:701) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslSensorSupplier$1.call(DslComponent.java:695) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslSensorSupplier$1.call(DslComponent.java:692) ~[?:?] at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:565) ~[?:?] ... 4 more Caused by: java.lang.IllegalStateException: Context entity not available when trying to evaluate Brooklyn DSL at org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:40) ~[?:?] at org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26) ~[?:?] at org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:352) ~[?:?] at org.apache.brooklyn.util.guava.Maybe$Absent.get(Maybe.java:345) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.callImpl(DslComponent.java:245) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.call(DslComponent.java:225) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.call(DslComponent.java:192) ~[?:?] at org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:364) ~[?:?] at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:565) ~[?:?] ... 4 more Caused by: java.lang.IllegalStateException: Context entity not available when trying to evaluate Brooklyn DSL at org.apache.brooklyn.util.guava.Maybe.absent(Maybe.java:60) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.getEntity(DslComponent.java:236) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.callImpl(DslComponent.java:241) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.call(DslComponent.java:225) ~[?:?] at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.call(DslComponent.java:192) ~[?:?] at org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:364) ~[?:?] at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:565) ~[?:?] ... 4 more
This is from the clocker kubernetes blueprint, specifically the section at https://github.com/brooklyncentral/clocker/blob/v2.1.0/kubernetes/catalog/kubernetes/kubernetes.bom#L299-L305
It can be reproduced in master with the following simple test:
@Test public void testDslInPoilcy() throws Exception { Entity app = createAndStartApplication( "services:", "- type: "+DynamicCluster.class.getName(), " brooklyn.config:", " initialSize: 0", " brooklyn.policies:", " - type: "+ServiceReplacer.class.getName(), " brooklyn.config:", " failureSensorToMonitor: $brooklyn:sensor(\"ha.entityFailed\")"); waitForApplicationTasks(app); Entity newApp = rebind(app); DynamicCluster newCluster = (DynamicCluster) Iterables.getOnlyElement(newApp.getChildren()); ServiceReplacer newPolicy = (ServiceReplacer) Iterables.find(newCluster.policies(), Predicates.instanceOf(ServiceReplacer.class)); Sensor<?> newSensor = newPolicy.config().get(ServiceReplacer.FAILURE_SENSOR_TO_MONITOR); assertEquals(newSensor.getName(), "ha.entityFailed"); }
Attachments
Issue Links
- links to