Unable to start Bamboo: Bamboo DB must use InnoDB table engine

Still need help?

The Atlassian Community is here for you.

Ask the community

This Knowledge Base article was written specifically for the Atlassian Server platform. Due to the Functional differences in Atlassian Cloud, the contents of this article cannot be applied to Atlassian Cloud applications.

Problem

After upgrading from a pre-5.10 version of Bamboo to a version at or above 5.10, Bamboo does not start up and the following appears in the catalina.out log

2016-04-29 13:14:44,550 FATAL [localhost-startStop-1] [DefaultBootstrapManager] Pre-bootstrap upgrade tasks failed
com.atlassian.upgrade.UpgradeException: Pre-bootstrap validation tests failed: [Task for build 51012 failed:, Bamboo DB must use InnoDB table engine.]
	at com.atlassian.bamboo.setup.DefaultBootstrapManager.performPersistenceUpgrade(DefaultBootstrapManager.java:354)
	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:4812)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Diagnosis

Environment

  • Bamboo 5.10 or newer in combination with a MySQL database

Diagnostic Steps 

To see which database engine is in use, connect to your Bamboo database in MySQL and run the following query: 

SHOW TABLE STATUS;

The Engine column from the output of this command will show the engine in use. If you see MyISAM in this column then this confirms that your MySQL database is using an unsupported engine

Cause

Bamboo requires that all tables in the Bamboo database use the InnoDB storage engine. In versions 5.10 and above this support is enforced and Bamboo will not start if it detects an unsupported engine in use. 

Resolution

Update your database to set the storage engine to InnoDB

The resolution of this problem requires changes to the Bamboo database. Before applying the solution ensure you have full working backups of your database.

  1. Shut down Bamboo
  2. Update each table's engine using a query like ALTER TABLE <table_name> ENGINE=InnoDB;

    The following query will generate the required ALTER TABLE statements for each table in your database:

    SET @DATABASE_NAME = 'name_of_your_db';
    
    SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
    FROM    information_schema.tables AS tb
    WHERE   table_schema = @DATABASE_NAME
    AND     `ENGINE` = 'MyISAM'
    AND     `TABLE_TYPE` = 'BASE TABLE'
    ORDER BY table_name DESC;
  3. Change the default storage engine for your database so new tables are created appropriately

    SET GLOBAL storage_engine='InnoDB';
  4. Start Bamboo and the upgrade should complete successfully.

 

Last modified on May 27, 2016

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.