-
Bug
-
Resolution: Fixed
-
High
-
5.15.3, 6.1.0, 5.15.7
-
12
-
Severity 1 - Critical
-
1
-
Summary
When upgrading Bamboo from 5.13.1 to 6.1.0, it constantly detects and creates new plan branches.
Environment
- Bamboo 5.13.1, upgraded to 6.1.0
- Oracle 12.2.0
- SVN repository
Steps to Reproduce
- Have a repository configured with SVN
- Configure Bamboo 5.13.1 and Oracle 12.2.0.
- Perform an upgrade to Bamboo 6.1.0
Expected Results
No branches created.
Actual Results
The following error happens when Bamboo starts:
2017-09-28 23:50:24,293 DEBUG [12-BranchDetectionBackgroundThread:pool-20-thread-1] [BranchDetectionServiceImpl] Detecting already existing branches for plan BAM-SUB 2017-09-28 23:50:24,332 WARN [12-BranchDetectionBackgroundThread:pool-20-thread-1] [SvnBranchDetector] svn branch detected: http://localhost:8080/subversion/server2/branches/test2, but doesn't start with root http://localhost:8080/subversion/server2/trunk 2017-09-28 23:50:24,332 WARN [12-BranchDetectionBackgroundThread:pool-20-thread-1] [SvnBranchDetector] svn branch detected: http://localhost:8080/subversion/server2/branches/test3, but doesn't start with root http://localhost:8080/subversion/server2/trunk 2017-09-28 23:50:24,713 INFO [12-BranchDetectionBackgroundThread:pool-20-thread-1] [AbstractBatchImpl] HHH000010: On release of batch it still contained JDBC statements 2017-09-28 23:50:24,713 ERROR [12-BranchDetectionBackgroundThread:pool-20-thread-1] [BatchingBatch] HHH000315: Exception executing batch [java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("BAMBOO"."VCS_BRANCH"."NAME") ], SQL: insert into VCS_BRANCH (NAME, DETECTED_DELETION_DATE, CHAIN_ID, VCS_BRANCH_ID) values (?, ?, ?, ?) 2017-09-28 23:50:24,715 WARN [12-BranchDetectionBackgroundThread:pool-20-thread-1] [SqlExceptionHelper] SQL Error: 1400, SQLState: 23000 2017-09-28 23:50:24,715 ERROR [12-BranchDetectionBackgroundThread:pool-20-thread-1] [SqlExceptionHelper] ORA-01400: cannot insert NULL into ("BAMBOO"."VCS_BRANCH"."NAME") 2017-09-28 23:50:24,715 WARN [12-BranchDetectionBackgroundThread:pool-20-thread-1] [SqlExceptionHelper] SQL Error: 1400, SQLState: 23000 2017-09-28 23:50:24,715 ERROR [12-BranchDetectionBackgroundThread:pool-20-thread-1] [SqlExceptionHelper] ORA-01400: cannot insert NULL into ("BAMBOO"."VCS_BRANCH"."NAME") 2017-09-28 23:50:24,721 ERROR [12-BranchDetectionBackgroundThread:pool-20-thread-1] [ExceptionMapperStandardImpl] HHH000346: Error during managed flush [org.hibernate.exception.ConstraintViolationException: could not execute batch] 2017-09-28 23:50:24,747 ERROR [12-BranchDetectionBackgroundThread:pool-20-thread-1] [BambooPluginUtils] An unexpected error has occurred while detecting branches: BAM-SUB org.springframework.dao.DataIntegrityViolationException: could not execute batch; SQL [insert into VCS_BRANCH (NAME, DETECTED_DELETION_DATE, CHAIN_ID, VCS_BRANCH_ID) values (?, ?, ?, ?)]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute batch at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:241) at org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:755) at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:594) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730) at sun.reflect.GeneratedMethodAccessor171.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy79.commit(Unknown Source) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:504) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:292) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) at com.sun.proxy.$Proxy156.saveAll(Unknown Source) at com.atlassian.bamboo.plan.branch.VcsBranchManagerImpl.createAll(VcsBranchManagerImpl.java:86) at com.atlassian.bamboo.plan.branch.BranchDetectionServiceImpl.findBranchesCreatedBeforePlanCreation(BranchDetectionServiceImpl.java:377) at com.atlassian.bamboo.plan.branch.BranchDetectionServiceImpl.access$500(BranchDetectionServiceImpl.java:79) at com.atlassian.bamboo.plan.branch.BranchDetectionServiceImpl$BranchDetector$1.lambda$run$0(BranchDetectionServiceImpl.java:128) at org.springframework.orm.hibernate5.HibernateTemplate.doExecute(HibernateTemplate.java:359) at org.springframework.orm.hibernate5.HibernateTemplate.execute(HibernateTemplate.java:313) at com.atlassian.bamboo.plan.branch.BranchDetectionServiceImpl$BranchDetector$1.run(BranchDetectionServiceImpl.java:121) at com.atlassian.bamboo.plugin.BambooPluginUtils$Runnable.call(BambooPluginUtils.java:106) at com.atlassian.bamboo.plugin.BambooPluginUtils$Runnable.call(BambooPluginUtils.java:99) at com.atlassian.bamboo.plugin.BambooPluginUtils.callUnsafeCode(BambooPluginUtils.java:53) at com.atlassian.bamboo.plan.branch.BranchDetectionServiceImpl$BranchDetector.run(BranchDetectionServiceImpl.java:167) ... Caused by: org.hibernate.exception.ConstraintViolationException: could not execute batch at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:112) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) at org.hibernate.engine.jdbc.batch.internal.BatchingBatch.performExecution(BatchingBatch.java:121) at org.hibernate.engine.jdbc.batch.internal.BatchingBatch.doExecuteBatch(BatchingBatch.java:97) at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.execute(AbstractBatchImpl.java:147) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:206) at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:611) at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:456) at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337) at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39) at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1435) at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:491) at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3201) at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2411) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:467) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:146) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:220) at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:68) at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582) ... 30 more Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("BAMBOO"."VCS_BRANCH"."NAME") at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:11190)
Notes
- Cannot reproduce with MySQL.
- The empty string branch name that works in MySQL to identify trunk does not work in Oracle.
- No empty string branch name is created in Oracle.
- Trunk is the main repository but there is another branch plan created for trunk.
- Every time it performs the branch detection process, the branch plan for trunk is increased by one (creating more duplicates).
- causes
-
PS-39424 Loading...