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

Cannot upgrade to Bamboo 6.1.1 on Microsoft SQL Server due to "not a constraint" error

    XMLWordPrintable

Details

    Description

      Summary

      Cannot upgrade to Bamboo 6.1.1 (and presumably 6.0.4) on Microsoft SQL Server due to "not a constraint" error.

      Environment

      • Microsoft SQL Server with case sensitive collation

      Steps to Reproduce

      1. Install Bamboo 5.13.2 on a Microsoft SQL database with CS_AS collation.
      2. Upgrade the instance to Bamboo 6.1.1

      Expected Results

      Upgrade succeeds.

      Actual Results

      The below exception is thrown in the <bamboo-home>/atlassian-bamboo.log file:

      2017-09-18 10:51:03,765 TRACE [localhost-startStop-1] [JdbcUtils] Executing: [alter table EXTERNAL_MEMBERS drop constraint FK_O35Y9WAFG8GXRHFEDX6P840A9] took 9.784 ms
      2017-09-18 10:51:03,771 ERROR [localhost-startStop-1] [AbstractUpgradeManager] java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: 'FK_O35Y9WAFG8GXRHFEDX6P840A9' is not a constraint.
      java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: 'FK_O35Y9WAFG8GXRHFEDX6P840A9' is not a constraint.
              at com.google.common.base.Throwables.propagate(Throwables.java:160)
              at com.atlassian.bamboo.upgrade.tasks.v5_16.UpgradeTask51605RemoveOldForeignKeysFromRenamedTables.lambda$dropConstraint$4(UpgradeTask51605RemoveOldForeignKeysFromRenamedTables.java:59)
              at java.util.Optional.ifPresent(Optional.java:159)
              at com.atlassian.bamboo.upgrade.tasks.v5_16.UpgradeTask51605RemoveOldForeignKeysFromRenamedTables.dropForeignKeyConstraintIfExists(UpgradeTask51605RemoveOldForeignKeysFromRenamedTables.java:47)
              at com.atlassian.bamboo.upgrade.tasks.v5_16.UpgradeTask51605RemoveOldForeignKeysFromRenamedTables.lambda$null$1(UpgradeTask51605RemoveOldForeignKeysFromRenamedTables.java:38)
              at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
              at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
              at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
              at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
              at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
              at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
              at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
              at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
              at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
              at com.atlassian.bamboo.upgrade.tasks.v5_16.UpgradeTask51605RemoveOldForeignKeysFromRenamedTables.lambda$doUpgrade$2(UpgradeTask51605RemoveOldForeignKeysFromRenamedTables.java:38)
              at com.atlassian.bamboo.upgrade.AbstractBootstrapUpgradeTask.withDatabaseConnection(AbstractBootstrapUpgradeTask.java:69)
              at com.atlassian.bamboo.upgrade.tasks.v5_16.UpgradeTask51605RemoveOldForeignKeysFromRenamedTables.doUpgrade(UpgradeTask51605RemoveOldForeignKeysFromRenamedTables.java:34)
              at com.atlassian.bamboo.upgrade.AbstractUpgradeManager.runUpgradeTask(AbstractUpgradeManager.java:175)
              at com.atlassian.bamboo.upgrade.BootstrapUpgradeManagerImpl.doUpgrade(BootstrapUpgradeManagerImpl.java:57)
              at com.atlassian.bamboo.setup.DefaultBootstrapManager.performPersistenceUpgrade(DefaultBootstrapManager.java:285)
              at com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager.init(DefaultAtlassianBootstrapManager.java:77)
              at com.atlassian.bamboo.setup.BootstrapLoaderListener.contextInitialized(BootstrapLoaderListener.java:117)
              at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4842)
              at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5303)
              at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
              at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
              at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
              at java.util.concurrent.FutureTask.run(FutureTask.java:266)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at java.lang.Thread.run(Thread.java:748)
      

      Notes

      • The foreign keys dropped by this upgrade task exist as lower case in MS SQL:
        FK_i5xelapgkulq7lqovowe4irbc	VARIABLESTOAUTOINCREMENT
        FK_hbr9i9d2dct3a205rhh82y555	EXTERNAL_MEMBERS
        FK_o35y9wafg8gxrhfedx6p840a9	EXTERNAL_MEMBERS
        FK_stjxt95av33tmiyd4xtf68nhc	LOCAL_MEMBERS
        FK_kbapw8j5ejxolemecf1p86p83	LOCAL_MEMBERS
        

      Workaround

      1. Shutdown Bamboo
      2. Run the below SQL manually on your Bamboo database to drop the constraints:
        ALTER TABLE EXTERNAL_MEMBERS DROP CONSTRAINT FK_hbr9i9d2dct3a205rhh82y555
        GO
        ALTER TABLE EXTERNAL_MEMBERS DROP CONSTRAINT FK_o35y9wafg8gxrhfedx6p840a9
        GO
        ALTER TABLE LOCAL_MEMBERS DROP CONSTRAINT FK_stjxt95av33tmiyd4xtf68nhc
        GO
        ALTER TABLE LOCAL_MEMBERS DROP CONSTRAINT FK_kbapw8j5ejxolemecf1p86p83
        GO
        ALTER TABLE VARIABLESTOAUTOINCREMENT DROP CONSTRAINT FK_i5xelapgkulq7lqovowe4irbc
        GO
        
      3. Start Bamboo to proceed with upgrade

      Attachments

        Issue Links

          Activity

            People

              achystoprudov Alexey Chystoprudov
              jowen@atlassian.com Jeremy Owen
              Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: