Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id EC96E200BA4 for ; Sat, 15 Oct 2016 11:23:22 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id EB151160AE7; Sat, 15 Oct 2016 09:23:22 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id B8AAA160AF4 for ; Sat, 15 Oct 2016 11:23:21 +0200 (CEST) Received: (qmail 56750 invoked by uid 500); 15 Oct 2016 09:23:20 -0000 Mailing-List: contact dev-help@brooklyn.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@brooklyn.apache.org Delivered-To: mailing list dev@brooklyn.apache.org Received: (qmail 56610 invoked by uid 99); 15 Oct 2016 09:23:20 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 15 Oct 2016 09:23:20 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 79C272C0086 for ; Sat, 15 Oct 2016 09:23:20 +0000 (UTC) Date: Sat, 15 Oct 2016 09:23:20 +0000 (UTC) From: "Svetoslav Neykov (JIRA)" To: dev@brooklyn.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (BROOKLYN-352) ConcurrentModificationException when using $brooklyn:entity MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Sat, 15 Oct 2016 09:23:23 -0000 [ https://issues.apache.org/jira/browse/BROOKLYN-352?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15577739#comment-15577739 ] Svetoslav Neykov commented on BROOKLYN-352: ------------------------------------------- Hit this once again: {noformat} Failed after 266ms: Error invoking start at DynamicClusterImpl{id=biagm3ha42}: Error resolving config cluster.initial.size, $brooklyn:entity("kubernetes-cluster").config("kubernetes.master.size"), in org.apache.brooklyn.util.core.task.BasicExecutionContext@1f77fbbe([Wrapped[contextEntity:DynamicClusterImpl{id=biagm3ha42}], LocalManagementContext[lvMtifon-xhTxtHy5]]): org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException org.apache.brooklyn.core.mgmt.internal.EffectorUtils$EffectorCallPropagatedRuntimeException: Error invoking start at DynamicClusterImpl{id=biagm3ha42}: Error resolving config cluster.initial.size, $brooklyn:entity("kubernetes-cluster").config("kubernetes.master.size"), in org.apache.brooklyn.util.core.task.BasicExecutionContext@1f77fbbe([Wrapped[contextEntity:DynamicClusterImpl{id=biagm3ha42}], LocalManagementContext[lvMtifon-xhTxtHy5]]): org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException at org.apache.brooklyn.core.mgmt.internal.EffectorUtils$EffectorCallPropagatedRuntimeException.propagate(EffectorUtils.java:318) at org.apache.brooklyn.core.mgmt.internal.EffectorUtils$EffectorCallPropagatedRuntimeException.access$100(EffectorUtils.java:285) at org.apache.brooklyn.core.mgmt.internal.EffectorUtils.handleEffectorException(EffectorUtils.java:326) at org.apache.brooklyn.core.mgmt.internal.EffectorUtils.invokeMethodEffector(EffectorUtils.java:281) at org.apache.brooklyn.core.effector.MethodEffector.call(MethodEffector.java:148) at org.apache.brooklyn.core.entity.trait.Startable$StartEffectorBody.call(Startable.java:56) at org.apache.brooklyn.core.entity.trait.Startable$StartEffectorBody.call(Startable.java:50) at org.apache.brooklyn.core.effector.EffectorTasks$EffectorBodyTaskFactory$1.call(EffectorTasks.java:82) at org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:359) at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:522) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Error resolving config cluster.initial.size, $brooklyn:entity("kubernetes-cluster").config("kubernetes.master.size"), in org.apache.brooklyn.util.core.task.BasicExecutionContext@1f77fbbe([Wrapped[contextEntity:DynamicClusterImpl{id=biagm3ha42}], LocalManagementContext[lvMtifon-xhTxtHy5]]): org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException at org.apache.brooklyn.core.mgmt.internal.AbstractManagementContext.invokeEffectorMethodSync(AbstractManagementContext.java:343) at org.apache.brooklyn.core.mgmt.internal.EffectorUtils.invokeMethodEffector(EffectorUtils.java:276) ... 10 more Caused by: java.lang.IllegalArgumentException: Error resolving config cluster.initial.size, $brooklyn:entity("kubernetes-cluster").config("kubernetes.master.size"), in org.apache.brooklyn.util.core.task.BasicExecutionContext@1f77fbbe([Wrapped[contextEntity:DynamicClusterImpl{id=biagm3ha42}], LocalManagementContext[lvMtifon-xhTxtHy5]]): org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException at org.apache.brooklyn.util.core.task.ValueResolver.getMaybeInternal(ValueResolver.java:426) at org.apache.brooklyn.util.core.task.ValueResolver.getMaybe(ValueResolver.java:267) at org.apache.brooklyn.util.core.task.ValueResolver.get(ValueResolver.java:260) at org.apache.brooklyn.util.core.task.Tasks.resolveValue(Tasks.java:147) at org.apache.brooklyn.core.config.BasicConfigKey.resolveValue(BasicConfigKey.java:405) at org.apache.brooklyn.core.config.BasicConfigKey.extractValue(BasicConfigKey.java:390) at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.resolveRawValueFromContainer(AbstractConfigMapImpl.java:308) at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl$3.apply(AbstractConfigMapImpl.java:360) at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl$3.apply(AbstractConfigMapImpl.java:357) at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.getConfigImpl(AbstractConfigMapImpl.java:372) at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.getConfig(AbstractConfigMapImpl.java:107) at org.apache.brooklyn.core.objs.AbstractConfigurationSupportInternal.get(AbstractConfigurationSupportInternal.java:169) at org.apache.brooklyn.core.entity.AbstractEntity.getConfig(AbstractEntity.java:1262) at org.apache.brooklyn.entity.group.DynamicClusterImpl.getInitialQuorumSize(DynamicClusterImpl.java:364) at org.apache.brooklyn.entity.group.DynamicClusterImpl.doStart(DynamicClusterImpl.java:414) at org.apache.brooklyn.entity.group.DynamicClusterImpl.start(DynamicClusterImpl.java:393) 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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:149) at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown Source) at org.apache.brooklyn.util.groovy.GroovyJavaMethods.invokeMethodOnMetaClass(GroovyJavaMethods.java:191) at org.apache.brooklyn.core.mgmt.internal.AbstractManagementContext.invokeEffectorMethodLocal(AbstractManagementContext.java:315) at org.apache.brooklyn.core.mgmt.internal.AbstractManagementContext.invokeEffectorMethodSync(AbstractManagementContext.java:339) ... 11 more Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException 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:363) ... 41 more Caused by: java.util.concurrent.ExecutionException: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException 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:361) at org.apache.brooklyn.util.time.Durations.get(Durations.java:43) ... 43 more Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException at org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:129) at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:115) at org.apache.brooklyn.util.core.task.ValueResolver$2.call(ValueResolver.java:344) ... 6 more Caused by: java.util.concurrent.ExecutionException: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException 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:361) at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:113) ... 7 more Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException at org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:129) at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:115) at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$DslConfigSupplier$1.call(DslComponent.java:315) ... 5 more Caused by: java.util.concurrent.ExecutionException: java.util.ConcurrentModificationException 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:361) at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:113) ... 6 more Caused by: java.util.ConcurrentModificationException at java.util.WeakHashMap$HashIterator.nextEntry(WeakHashMap.java:806) at java.util.WeakHashMap$ValueIterator.next(WeakHashMap.java:833) at com.google.common.collect.Iterators$5.next(Iterators.java:553) at com.google.common.collect.Iterators$7.computeNext(Iterators.java:646) at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43) at com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:318) at com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:300) at org.apache.brooklyn.core.mgmt.internal.LocalEntityManager.getAllEntitiesInApplication(LocalEntityManager.java:218) at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.call(DslComponent.java:131) at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.call(DslComponent.java:100) at org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:359) ... 5 more {noformat} > ConcurrentModificationException when using $brooklyn:entity > ----------------------------------------------------------- > > Key: BROOKLYN-352 > URL: https://issues.apache.org/jira/browse/BROOKLYN-352 > Project: Brooklyn > Issue Type: Bug > Reporter: Svetoslav Neykov > > Got the following exception when running a fairly complex blueprint on a cpu starved machine. Looking at the sources and the javadoc makes sense - we should guard iterating over the entities with a synchronized block. > From Collections.synchronizedMap: > {noformat} > * It is imperative that the user manually synchronize on the returned > * map when iterating over any of its collection views: > {noformat} > {noformat} > Failed after 13ms: Execution failed, invocation error for launching VanillaSoftwareProcessImpl{id=w4ixqlmhdh}: Error resolving config shell.env.KUBERNETES_URL, $brooklyn:entity("kubernetes-master").attributeWhenReady("kubernetes.url"), in org.apache.brooklyn.util.core.task.BasicExecutionContext@1d028d95([Wrapped[contextEntity:VanillaSoftwareProcessImpl{id=w4ixqlmhdh}], LocalManagementContext[i5xdJAZa-yAstcnrg]]): org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException > java.lang.IllegalStateException: Execution failed, invocation error for launching VanillaSoftwareProcessImpl{id=w4ixqlmhdh}: Error resolving config shell.env.KUBERNETES_URL, $brooklyn:entity("kubernetes-master").attributeWhenReady("kubernetes.url"), in org.apache.brooklyn.util.core.task.BasicExecutionContext@1d028d95([Wrapped[contextEntity:VanillaSoftwareProcessImpl{id=w4ixqlmhdh}], LocalManagementContext[i5xdJAZa-yAstcnrg]]): org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException > at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.logWithDetailsAndThrow(ScriptHelper.java:387) > at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:370) > at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper$8.call(ScriptHelper.java:287) > at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper$8.call(ScriptHelper.java:285) > at org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:359) > at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:519) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.lang.IllegalArgumentException: Error resolving config shell.env.KUBERNETES_URL, $brooklyn:entity("kubernetes-master").attributeWhenReady("kubernetes.url"), in org.apache.brooklyn.util.core.task.BasicExecutionContext@1d028d95([Wrapped[contextEntity:VanillaSoftwareProcessImpl{id=w4ixqlmhdh}], LocalManagementContext[i5xdJAZa-yAstcnrg]]): org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException > at org.apache.brooklyn.util.core.task.ValueResolver.getMaybeInternal(ValueResolver.java:411) > at org.apache.brooklyn.util.core.task.ValueResolver.getMaybe(ValueResolver.java:257) > at org.apache.brooklyn.util.core.task.ValueResolver.get(ValueResolver.java:250) > at org.apache.brooklyn.util.core.task.Tasks.resolveValue(Tasks.java:147) > at org.apache.brooklyn.core.config.BasicConfigKey.resolveValue(BasicConfigKey.java:355) > at org.apache.brooklyn.core.config.BasicConfigKey.extractValue(BasicConfigKey.java:340) > at org.apache.brooklyn.core.config.SubElementConfigKey.extractValue(SubElementConfigKey.java:48) > at org.apache.brooklyn.core.config.internal.AbstractStructuredConfigKey.extractValue(AbstractStructuredConfigKey.java:111) > at org.apache.brooklyn.core.config.internal.AbstractStructuredConfigKey.extractValue(AbstractStructuredConfigKey.java:124) > at org.apache.brooklyn.core.entity.internal.EntityConfigMap.getConfigImpl(EntityConfigMap.java:139) > at org.apache.brooklyn.core.entity.internal.EntityConfigMap.getConfig(EntityConfigMap.java:113) > at org.apache.brooklyn.core.config.internal.AbstractConfigMapImpl.getConfig(AbstractConfigMapImpl.java:50) > at org.apache.brooklyn.core.entity.AbstractEntity$BasicConfigurationSupport.get(AbstractEntity.java:1213) > at org.apache.brooklyn.core.entity.AbstractEntity.getConfig(AbstractEntity.java:1299) > at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessSshDriver.getShellEnvironment(AbstractSoftwareProcessSshDriver.java:348) > at org.apache.brooklyn.entity.software.base.VanillaSoftwareProcessSshDriver.getShellEnvironment(VanillaSoftwareProcessSshDriver.java:147) > at org.apache.brooklyn.entity.software.base.AbstractSoftwareProcessSshDriver.execute(AbstractSoftwareProcessSshDriver.java:265) > at org.apache.brooklyn.entity.software.base.lifecycle.ScriptHelper.executeInternal(ScriptHelper.java:366) > ... 8 more > Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException > 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:348) > ... 25 more > Caused by: java.util.concurrent.ExecutionException: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > at java.util.concurrent.FutureTask.get(FutureTask.java:188) > at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) > at org.apache.brooklyn.util.core.task.BasicTask.get(BasicTask.java:361) > at org.apache.brooklyn.util.time.Durations.get(Durations.java:43) > ... 27 more > Caused by: org.apache.brooklyn.util.exceptions.PropagatedRuntimeException: ConcurrentModificationException > at org.apache.brooklyn.util.exceptions.Exceptions.propagate(Exceptions.java:129) > at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:136) > at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$AttributeWhenReady.newTask(DslComponent.java:261) > at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:128) > at org.apache.brooklyn.util.core.task.ValueResolver$2.call(ValueResolver.java:334) > ... 6 more > Caused by: java.util.concurrent.ExecutionException: java.util.ConcurrentModificationException > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > at java.util.concurrent.FutureTask.get(FutureTask.java:188) > at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63) > at org.apache.brooklyn.util.core.task.BasicTask.get(BasicTask.java:361) > at org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier.get(BrooklynDslDeferredSupplier.java:129) > ... 9 more > Caused by: java.util.ConcurrentModificationException > at java.util.WeakHashMap$HashIterator.nextEntry(WeakHashMap.java:882) > at java.util.WeakHashMap$ValueIterator.next(WeakHashMap.java:909) > at com.google.common.collect.Iterators$5.next(Iterators.java:553) > at com.google.common.collect.Iterators$7.computeNext(Iterators.java:646) > at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) > at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) > at com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43) > at com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:314) > at com.google.common.collect.ImmutableSet.copyOf(ImmutableSet.java:300) > at org.apache.brooklyn.core.mgmt.internal.LocalEntityManager.getAllEntitiesInApplication(LocalEntityManager.java:218) > at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.call(DslComponent.java:127) > at org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent$EntityInScopeFinder.call(DslComponent.java:96) > ... 6 more > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)