-
Type:
Bug
-
Resolution: Fixed
-
Priority:
High
-
Affects Version/s: 6.0.4, 6.1.1
-
Component/s: Database (MS SQL), Upgrading
-
Severity 2 - Major
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
- Install Bamboo 5.13.2 on a Microsoft SQL database with CS_AS collation.
- 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
- Shutdown Bamboo
- 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
- Start Bamboo to proceed with upgrade
- derived from
-
BAM-18471 Oracle cannot update schema during upgrade
-
- Closed
-