Can't upgrade to Bamboo 10.2.x when using MySQL

XMLWordPrintable

    • Type: Bug
    • Resolution: Invalid
    • Priority: High
    • n/a
    • Affects Version/s: 10.2.0
    • Component/s: Database (MySQL)
    • None
    • Severity 1 - Critical

      Issue Summary

      MySql 8.x has a limit of 3072 bytes in an index.
      Upgrading to Bamboo 10.2 attempts to modify table NOTIFICATIONS, column RECIPIENT to varchar(1000). This change overflows the 3072 byte limit

      This is reproducible on Data Center: yes

      Note: Very similar to BAM-25835, which was fixed in 10.1.0 and applied to all DBs. This issue applies ONLY to MySql.

      Steps to Reproduce

      create database testdb;
      use testdb;
      create table myTable (myColumn VARCHAR(255), INDEX (myColumn));

      ALTER TABLE myTable MODIFY COLUMN myColumn varchar(1000);

      Expected Results

      Column should be changed to varchar(1000)

      Actual Results

      Error Code: 1071. Specified key was too long; max key length is 3072 bytes

      The below exception is thrown in the atlassian-bamboo.log file:

      2025-01-09 15:21:11,855 INFO [main] [AbstractUpgradeManager] 100103 : Extend Notification - Recipient column size to 1000 characters (bootstrap)
      2025-01-09 15:21:11,855 INFO [main] [AbstractUpgradeManager] -----------------------------------------------------------------------------------
      2025-01-09 15:21:11,867 ERROR [main] [AbstractUpgradeManager] java.sql.SQLSyntaxErrorException: Specified key was too long; max key length is 3072 bytes
      java.sql.SQLSyntaxErrorException: Specified key was too long; max key length is 3072 bytes
      

      Workaround

      1. Stop Bamboo
      2. In the 10.2.0 installation folder, locate the <bamboo-install>/atlassian-bamboo/WEB-INF/classes/upgrade.xml file
      3. Modify it so the following entry is commented:
            <!-- Version 10.1 (starts with 100100) -->
            <!-- upgrade build="100103" class="com.atlassian.bamboo.upgrade.tasks.v10_1.UpgradeTask100103ExtendNotificationRecipientColumnSize"/ -->
        
      4. Modify the Bamboo DB schema manually via SQL commands:
        ALTER TABLE NOTIFICATIONS MODIFY COLUMN RECIPIENT VARCHAR(750);
        
      5. Start Bamboo 10.2.0

            Assignee:
            Mateusz Szmal
            Reporter:
            Ricky Fulks
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: