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

Rerun build doesn't work after exceeding artifacts soft limit

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Low Low
    • None
    • 5.12.0.2
    • Artifacts, Builds, OnDemand
    • None

      Rerun removes old result first. Then in the same transaction if soft limit is exceeded it will recalculate artifacts usage.

      @4000000055ee620f33e2c4ac 2015-09-08 14:20:21,854 ERROR [TP-Processor3] [ChainExecutionManagerImpl] Plan 'XX-YYYY' could not be started. org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
      @4000000055ee620f33e2cc7c com.atlassian.util.concurrent.LazyReference$InitializationException: org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
      @4000000055ee620f33e2dc1c       at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:149)
      @4000000055ee620f33e2e004       at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112)
      @4000000055ee620f33e2e004       at com.atlassian.util.concurrent.ResettableLazyReference.get(ResettableLazyReference.java:87)
      @4000000055ee620f33e2e3ec       at com.atlassian.bamboo.storage.DiskUsageManagerImpl.findUsedStorageByArtifactHandler(DiskUsageManagerImpl.java:28)
      @4000000055ee620f33e2e7d4       at com.atlassian.bamboo.storage.StorageCappingServiceImpl.updateLimitExceededFlags(StorageCappingServiceImpl.java:84)
      @4000000055ee620f33e2ebbc       at com.atlassian.bamboo.storage.StorageCappingServiceImpl.onArtifactUpdated(StorageCappingServiceImpl.java:65)
      @4000000055ee620f33e2ebbc       at com.atlassian.bamboo.build.artifact.LocalArtifactManager.removeArtifactFromStorage(LocalArtifactManager.java:66)
      @4000000055ee620f33e2efa4       at com.atlassian.bamboo.build.artifact.DefaultArtifactLinkManager.removeArtifactLink(DefaultArtifactLinkManager.java:151)
      @4000000055ee620f33e2f774       at com.atlassian.bamboo.build.artifact.DefaultArtifactLinkManager.removeProducedArtifactLinks(DefaultArtifactLinkManager.java:167)
      @4000000055ee620f33e2fb5c       at com.atlassian.bamboo.chains.ChainResultManagerImpl.updateForContinuedBuild(ChainResultManagerImpl.java:199)
      @4000000055ee620f33e2fb5c       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      @4000000055ee620f33e2ff44       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      @4000000055ee620f33e3032c       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      @4000000055ee620f33e3032c       at java.lang.reflect.Method.invoke(Method.java:497)
      @4000000055ee620f33e30714       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
      @4000000055ee620f33e30afc       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
      @4000000055ee620f33e30afc       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
      @4000000055ee620f33e30ee4       at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
      @4000000055ee620f33e32a3c       at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
      @4000000055ee620f33e32a3c       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
      @4000000055ee620f33e32e24       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      @4000000055ee620f33e3320c       at com.atlassian.bamboo.author.AuthorCreatorServiceInterceptor.invoke(AuthorCreatorServiceInterceptor.java:46)
      @4000000055ee620f33e335f4       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      @4000000055ee620f33e335f4       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
      @4000000055ee620f33e339dc       at com.sun.proxy.$Proxy127.updateForContinuedBuild(Unknown Source)
      @4000000055ee620f33e33dc4       at com.atlassian.bamboo.chains.ChainExecutionManagerImpl.createNewChainState(ChainExecutionManagerImpl.java:548)
      @4000000055ee620f33e33dc4       at com.atlassian.bamboo.chains.ChainExecutionManagerImpl.createChainStateNoDetection(ChainExecutionManagerImpl.java:435)
      @4000000055ee620f33e341ac       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      @4000000055ee620f33e3497c       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      @4000000055ee620f33e34d64       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      @4000000055ee620f33e34d64       at java.lang.reflect.Method.invoke(Method.java:497)
      ...
      4000000055ee620f3406ea94 Caused by: org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
      @4000000055ee620f3406f264       at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:701)
      @4000000055ee620f3406f64c       at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:414)
      @4000000055ee620f340763ac       at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:416)
      @4000000055ee620f34076794       at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:341)
      @4000000055ee620f34076794       at com.atlassian.bamboo.artifact.ArtifactHibernateDao.findArtifactUsedStorageByLinkType(ArtifactHibernateDao.java:211)
      @4000000055ee620f340b5b4c       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      @4000000055ee620f340b5f34       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      @4000000055ee620f340b5f34       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      @4000000055ee620f340b631c       at java.lang.reflect.Method.invoke(Method.java:497)
      @4000000055ee620f340b6704       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
      @4000000055ee620f340b76a4       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
      @4000000055ee620f340b7a8c       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
      @4000000055ee620f340b7a8c       at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
      @4000000055ee620f340b825c       at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
      @4000000055ee620f340b825c       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
      @4000000055ee620f340b8644       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
      @4000000055ee620f340b8a2c       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
      @4000000055ee620f340b8e14       at com.sun.proxy.$Proxy103.findArtifactUsedStorageByLinkType(Unknown Source)
      @4000000055ee620f340b8e14       at com.atlassian.bamboo.storage.DiskUsageManagerImpl$1.create(DiskUsageManagerImpl.java:20)
      @4000000055ee620f340b91fc       at com.atlassian.bamboo.storage.DiskUsageManagerImpl$1.create(DiskUsageManagerImpl.java:16)
      @4000000055ee620f340b99cc       at com.atlassian.util.concurrent.ResettableLazyReference$InternalReference.create(ResettableLazyReference.java:140)
      @4000000055ee620f340b99cc       at com.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:321)
      @4000000055ee620f340b9db4       at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:143)
      @4000000055ee620f340b9db4       ... 299 more
      @4000000055ee620f340ba19c Caused by: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
      @4000000055ee620f340ba584       at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:85)
      @4000000055ee620f340ba584       at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:70)
      @4000000055ee620f340ba96c       at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:90)
      @4000000055ee620f340bad54       at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
      @4000000055ee620f340bad54       at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
      @4000000055ee620f340bb13c       at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114)
      @4000000055ee620f340bb13c       at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
      @4000000055ee620f340bb90c       at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)
      @4000000055ee620f340bb90c       at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2667)
      @4000000055ee620f340bbcf4       at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2912)
      @4000000055ee620f340bbcf4       at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)
      @4000000055ee620f340bc4c4       at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
      @4000000055ee620f340bc4c4       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
      @4000000055ee620f340bc4c4       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:189)
      @4000000055ee620f340bc8ac       at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
      @4000000055ee620f34178c64       at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:64)
      @4000000055ee620f3417904c       at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1185)
      @4000000055ee620f34179434       at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1261)
      @4000000055ee620f34179434       at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
      @4000000055ee620f3417c314       at com.atlassian.bamboo.artifact.ArtifactHibernateDao$7.doInHibernate(ArtifactHibernateDao.java:216)
      @4000000055ee620f3417c314       at com.atlassian.bamboo.artifact.ArtifactHibernateDao$7.doInHibernate(ArtifactHibernateDao.java:212)
      @4000000055ee620f3417c6fc       at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
      @4000000055ee620f3417cae4       ... 319 more
      

      Bug Variance:
      The same error might be thrown when re-running a build even soft-limit is not exceeded.

            [BAM-16332] Rerun build doesn't work after exceeding artifacts soft limit

            I have been able to work around this issue by cloning the plan. it then works well on the clone but the original one remains broken.

            Olivier BERTHONNEAU added a comment - I have been able to work around this issue by cloning the plan. it then works well on the clone but the original one remains broken.

              Unassigned Unassigned
              mhunter Matthew Hunter
              Affected customers:
              5 This affects my team
              Watchers:
              10 Start watching this issue

                Created:
                Updated:
                Resolved: