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

Bamboo can't remove stage entries because of constraint FKF88809E0D324424A

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Medium
    • 4.0 M0
    • 3.3.2
    • None
    • None

    Description

      The Stage is marked for deletion at table CHAIN_STAGE. Constraint FKF88809E0D324424A refers to the relationship between table ARTIFACT_DEFINITION and BUILD.

      All the Jobs referring the Stage were already removed from the BUILD table and Artifacts from ARTIFACT_DEFINITION, however Bamboo is not able to remove the marked entry from CHAIN_STAGE.

      Workaround: Remove manually from CHAIN_STAGE table the entries marked for deletion. This operation will be successful only if all the other tables already had their entries deleted. So, this operation will not create orphans in the DB.

      DELETE FROM CHAIN_STAGE WHERE MARKED_FOR_DELETION = true;
      

      SQL Server:

      2011-11-24 14:01:54,659 WARN [AtlassianEvent::0-BAM::EVENTS:pool-1-thread-9] [JDBCExceptionReporter] SQL Error: 547, SQLState: 23000
      2011-11-24 14:01:54,659 ERROR [AtlassianEvent::0-BAM::EVENTS:pool-1-thread-9] [JDBCExceptionReporter] The DELETE statement conflicted with the REFERENCE constraint "FKF88809E0D324424A". The conflict occurred in database "BambooDatabase", table "dbo.ARTIFACT_DEFINITION", column 'PRODUCER_JOB_ID'.
      2011-11-24 14:01:54,660 WARN [AtlassianEvent::0-BAM::EVENTS:pool-1-thread-9] [JDBCExceptionReporter] SQL Error: 547, SQLState: 23000
      2011-11-24 14:01:54,660 ERROR [AtlassianEvent::0-BAM::EVENTS:pool-1-thread-9] [JDBCExceptionReporter] The DELETE statement conflicted with the REFERENCE constraint "FKF88809E0D324424A". The conflict occurred in database "BambooDatabase", table "dbo.ARTIFACT_DEFINITION", column 'PRODUCER_JOB_ID'.
      2011-11-24 14:01:54,660 ERROR [AtlassianEvent::0-BAM::EVENTS:pool-1-thread-9] [SessionImpl] Could not synchronize database state with session
      2011-11-24 14:01:54,667 ERROR [AtlassianEvent::0-BAM::EVENTS:pool-1-thread-9] [DeletionServiceImpl] Unable to complete delayed deletion:
      org.springframework.dao.DataIntegrityViolationException: Hibernate operation: Could not execute JDBC batch update; SQL []; The DELETE statement conflicted with the REFERENCE constraint "FKF88809E0D324424A". The conflict occurred in database "BambooDatabase", table "dbo.ARTIFACT_DEFINITION", column 'PRODUCER_JOB_ID'.; nested exception is java.sql.BatchUpdateException: The DELETE statement conflicted with the REFERENCE constraint "FKF88809E0D324424A". The conflict occurred in database "BambooDatabase", table "dbo.ARTIFACT_DEFINITION", column 'PRODUCER_JOB_ID'.
      Caused by: java.sql.BatchUpdateException: The DELETE statement conflicted with the REFERENCE constraint "FKF88809E0D324424A". The conflict occurred in database "BambooDatabase", table "dbo.ARTIFACT_DEFINITION", column 'PRODUCER_JOB_ID'.
      at net.sourceforge.jtds.jdbc.JtdsStatement.executeBatch(JtdsStatement.java:944)
      at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
      at net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:54)
      at net.sf.hibernate.impl.BatcherImpl.executeBatch(BatcherImpl.java:128)
      at net.sf.hibernate.impl.BatcherImpl.prepareStatement(BatcherImpl.java:61)
      at net.sf.hibernate.impl.BatcherImpl.prepareStatement(BatcherImpl.java:58)
      at net.sf.hibernate.impl.BatcherImpl.prepareBatchStatement(BatcherImpl.java:111)
      at net.sf.hibernate.persister.EntityPersister.delete(EntityPersister.java:564)
      at net.sf.hibernate.impl.ScheduledDeletion.execute(ScheduledDeletion.java:29)
      at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2447)
      at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2433)
      at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2395)
      at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2259)
      at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:61)
      at org.springframework.orm.hibernate.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:510)
      at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
      at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
      at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy11.savePlan(Unknown Source)
      at com.atlassian.bamboo.deletion.DeletionServiceImpl.executeDelayedDeletion(DeletionServiceImpl.java:241)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at com.atlassian.bamboo.security.acegi.intercept.aopalliance.AuthorityOverrideMethodSecurityInterceptor.invoke(AuthorityOverrideMethodSecurityInterceptor.java:29)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy70.executeDelayedDeletion(Unknown Source)
      at com.atlassian.bamboo.v2.events.TriggerDelayedDeletionListener.handleEvent(TriggerDelayedDeletionListener.java:23)
      at com.atlassian.event.legacy.LegacyListenerHandler$LegacyListenerInvoker.invoke(LegacyListenerHandler.java:55)
      at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$2.run(AsynchronousAbleEventDispatcher.java:60)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at com.atlassian.bamboo.build.pipeline.concurrent.NamedThreadFactory$2.run(NamedThreadFactory.java:50)
      at java.lang.Thread.run(Unknown Source)
      

      MySQL

      2011-11-30 09:49:56,863 INFO [QuartzScheduler_Worker-1] [DeletionServiceImpl] Deleting 1 stage(s) marked for deletion
      2011-11-30 09:49:56,864 INFO [QuartzScheduler_Worker-1] [DeletionServiceImpl] Deleting stage [Build Upgrade Stage] from PROJ-PLAN
      2011-11-30 09:49:56,938 WARN [QuartzScheduler_Worker-1] [JDBCExceptionReporter] SQL Error: 1451, SQLState: 23000
      2011-11-30 09:49:56,938 ERROR [QuartzScheduler_Worker-1] [JDBCExceptionReporter] Cannot delete or update a parent row: a foreign key constraint fails (`bamboo`.`artifact_definition`, CONSTRAINT `FKF88809E0D324424A` FOREIGN KEY (`PRODUCER_JOB_ID`) REFERENCES `build` (`BUILD_ID`))
      2011-11-30 09:49:56,940 WARN [QuartzScheduler_Worker-1] [JDBCExceptionReporter] SQL Error: 1451, SQLState: 23000
      2011-11-30 09:49:56,940 ERROR [QuartzScheduler_Worker-1] [JDBCExceptionReporter] Cannot delete or update a parent row: a foreign key constraint fails (`bamboo`.`artifact_definition`, CONSTRAINT `FKF88809E0D324424A` FOREIGN KEY (`PRODUCER_JOB_ID`) REFERENCES `build` (`BUILD_ID`))
      2011-11-30 09:49:56,942 ERROR [QuartzScheduler_Worker-1] [SessionImpl] Could not synchronize database state with session
      2011-11-30 09:49:56,974 ERROR [QuartzScheduler_Worker-1] [DeletionServiceImpl] Unable to complete delayed deletion:
      org.springframework.dao.DataIntegrityViolationException: Hibernate operation: Could not execute JDBC batch update; SQL []; Cannot delete or update a parent row: a foreign key constraint fails (`bamboo`.`artifact_definition`, CONSTRAINT `FKF88809E0D324424A` FOREIGN KEY (`PRODUCER_JOB_ID`) REFERENCES `build` (`BUILD_ID`)); nested exception is java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails (`bamboo`.`artifact_definition`, CONSTRAINT `FKF88809E0D324424A` FOREIGN KEY (`PRODUCER_JOB_ID`) REFERENCES `build` (`BUILD_ID`))
      Caused by: java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails (`bamboo`.`artifact_definition`, CONSTRAINT `FKF88809E0D324424A` FOREIGN KEY (`PRODUCER_JOB_ID`) REFERENCES `build` (`BUILD_ID`))
      at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2007)
      at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1443)
      at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
      at net.sf.hibernate.impl.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:54)
      at net.sf.hibernate.impl.BatcherImpl.executeBatch(BatcherImpl.java:128)
      at net.sf.hibernate.impl.BatcherImpl.prepareStatement(BatcherImpl.java:61)
      at net.sf.hibernate.impl.BatcherImpl.prepareStatement(BatcherImpl.java:58)
      at net.sf.hibernate.impl.BatcherImpl.prepareBatchStatement(BatcherImpl.java:111)
      at net.sf.hibernate.persister.EntityPersister.delete(EntityPersister.java:564)
      at net.sf.hibernate.impl.ScheduledDeletion.execute(ScheduledDeletion.java:29)
      at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2447)
      at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2433)
      at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2395)
      at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2259)
      at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:61)
      at org.springframework.orm.hibernate.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:510)
      at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
      at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
      at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy11.savePlan(Unknown Source)
      at com.atlassian.bamboo.deletion.DeletionServiceImpl.executeDelayedDeletion(DeletionServiceImpl.java:241)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      at com.atlassian.bamboo.security.acegi.intercept.aopalliance.AuthorityOverrideMethodSecurityInterceptor.invoke(AuthorityOverrideMethodSecurityInterceptor.java:29)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy70.executeDelayedDeletion(Unknown Source)
      at com.atlassian.bamboo.deletion.DeletionServiceJob.execute(DeletionServiceJob.java:26)
      at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
      at com.atlassian.bamboo.quartz.SystemAuthorizedThreadPool$1.run(SystemAuthorizedThreadPool.java:38)
      at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rbattaglin Renan Battaglin
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: