Uploaded image for project: 'Bamboo Data Center'
  1. Bamboo Data Center
  2. BAM-15533

Elastic agent handling broken due to: IllegalArgumentException: duplicate key: QueuedResultKey

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Medium
    • 5.8
    • None
    • None

    Description

      JBAC had a hiccup and didn't spin up new elastic agents. Looking at the logs we've noticed the following exception:

      2015-02-10 07:28:48,486 ERROR [scheduler_Worker-4] [JobRunShell] Job elastic agent monitor job group.elastic agent monitor job threw an unhandled Exception: 
      java.lang.IllegalArgumentException: duplicate key: QueuedResultKey{resultKey=J64SPT-UNIT2-UNIT-5, timestamp=53729201374254818}
      	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:115)
      	at com.google.common.collect.RegularImmutableMap.<init>(RegularImmutableMap.java:72)
      	at com.google.common.collect.ImmutableMap$Builder.fromEntryList(ImmutableMap.java:245)
      	at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:231)
      	at com.google.common.collect.Maps.uniqueIndex(Maps.java:681)
      	at com.google.common.collect.Maps.uniqueIndex(Maps.java:637)
      	at com.atlassian.bamboo.v2.build.queue.QueueManagerView.getQueueView(QueueManagerView.java:68)
      	at com.atlassian.bamboo.agent.elastic.schedule.ElasticRunningInstancesOptimizerImpl.getRequirementSetsOfQueuedExecutables(ElasticRunningInstancesOptimizerImpl.java:622)
      	at com.atlassian.bamboo.agent.elastic.schedule.ElasticRunningInstancesOptimizerImpl.getImagesToStart(ElasticRunningInstancesOptimizerImpl.java:203)
      	at sun.reflect.GeneratedMethodAccessor2545.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:483)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
      	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
      	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
      	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
      	at com.sun.proxy.$Proxy139.getImagesToStart(Unknown Source)
      	at com.atlassian.bamboo.agent.elastic.schedule.ElasticInstancesMonitorJob.execute(ElasticInstancesMonitorJob.java:47)
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
      	at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:49)
      	at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:31)
      	at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:20)
      	at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:52)
      	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
      2015-02-10 07:28:48,487 ERROR [scheduler_Worker-4] [ErrorLogger] Job (elastic agent monitor job group.elastic agent monitor job threw an exception.
      org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.IllegalArgumentException: duplicate key: QueuedResultKey{resultKey=J64SPT-UNIT2-UNIT-5, timestamp=53729201374254818}]
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
      	at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:49)
      	at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:31)
      	at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:20)
      	at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:52)
      	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
      Caused by: java.lang.IllegalArgumentException: duplicate key: QueuedResultKey{resultKey=J64SPT-UNIT2-UNIT-5, timestamp=53729201374254818}
      	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:115)
      	at com.google.common.collect.RegularImmutableMap.<init>(RegularImmutableMap.java:72)
      	at com.google.common.collect.ImmutableMap$Builder.fromEntryList(ImmutableMap.java:245)
      	at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:231)
      	at com.google.common.collect.Maps.uniqueIndex(Maps.java:681)
      	at com.google.common.collect.Maps.uniqueIndex(Maps.java:637)
      	at com.atlassian.bamboo.v2.build.queue.QueueManagerView.getQueueView(QueueManagerView.java:68)
      	at com.atlassian.bamboo.agent.elastic.schedule.ElasticRunningInstancesOptimizerImpl.getRequirementSetsOfQueuedExecutables(ElasticRunningInstancesOptimizerImpl.java:622)
      	at com.atlassian.bamboo.agent.elastic.schedule.ElasticRunningInstancesOptimizerImpl.getImagesToStart(ElasticRunningInstancesOptimizerImpl.java:203)
      	at sun.reflect.GeneratedMethodAccessor2545.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:483)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
      	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
      	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
      	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
      	at com.sun.proxy.$Proxy139.getImagesToStart(Unknown Source)
      	at com.atlassian.bamboo.agent.elastic.schedule.ElasticInstancesMonitorJob.execute(ElasticInstancesMonitorJob.java:47)
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
      	... 5 more
      

      According to the ui, the build mentioned in the exception finished about 4 hours ago.

      (5.8-m4 build 5860 - 04 Feb 15)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              mmeinhold Martin Meinhold
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: