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

Bamboo constantly creates plan branches when using Oracle and SVN

      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

      1. Have a repository configured with SVN
      2. Configure Bamboo 5.13.1 and Oracle 12.2.0.
      3. 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).

          Form Name

            [BAM-18721] Bamboo constantly creates plan branches when using Oracle and SVN

            Marcin Gardias made changes -
            Assignee New: Marcin Walerianczyk [ mwalerianczyk ]
            Marcin Gardias made changes -
            Fix Version/s New: 6.9.2 [ 87692 ]
            Fix Version/s Original: 6.2.2 [ 75059 ]
            Marcin Gardias made changes -
            Resolution New: Fixed [ 1 ]
            Status Original: Long Term Backlog [ 12073 ] New: Closed [ 6 ]
            Marcin Gardias made changes -
            Assignee Original: Marcin Gardias [ mgardias ]
            Jan Majkutewicz (Inactive) made changes -
            Status Original: Needs Triage [ 10030 ] New: Long Term Backlog [ 12073 ]
            SET Analytics Bot made changes -
            UIS New: 1
            Bugfix Automation Bot made changes -
            Support reference count New: 12
            Jeyanthan I (Inactive) made changes -
            Resolution Original: Fixed [ 1 ]
            Status Original: Closed [ 6 ] New: Needs Triage [ 10030 ]
            Monique Khairuliana (Inactive) made changes -
            Workflow Original: Bamboo Workflow 2016 v1 - Restricted [ 2444864 ] New: JAC Bug Workflow v3 [ 3384472 ]
            Status Original: Resolved [ 5 ] New: Closed [ 6 ]
            Christian Glockner made changes -
            Remote Link New: This issue links to "PS-39424 (Atlassian Support System)" [ 422551 ]

              mwalerianczyk Marcin Walerianczyk
              pdemitrio Patricio
              Affected customers:
              0 This affects my team
              Watchers:
              10 Start watching this issue

                Created:
                Updated:
                Resolved: