KB-2273 Tomcat fails to start after migrating the primary database from MySQL to MariaDB

Symptoms

After migrating the primary database from MySQL to MariaDB, the application server fails to start with the following error:

  • The following error is found in tomcat-stdOut.log:
    YYYY-MM-DDTHH:MM:SS.sssZ [main] FATAL com.appiancorp.common.web.StartupHaltingServletContextListener - Halting JVM startup
    com.appiancorp.suiteapi.common.exceptions.AppianException: java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#66' while setting bean property 'sourceList' with key [66]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#66': Cannot resolve reference to bean 'mobileClientValidationFilter' while setting constructor argument with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mobileClientValidationFilter' defined in ServletContext resource [/WEB-INF/conf/security/spring-security-05-web-api.xml]: Cannot resolve reference to bean 'httpBasicAuthenticationEntryPoint' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'httpBasicAuthenticationEntryPoint' defined in ServletContext resource [/WEB-INF/conf/security/spring-security-05-web-api.xml]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.appiancorp.security.auth.HttpBasicAuthenticationEntryPoint]: Constructor threw exception; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is
    java.lang.IllegalStateException: [jdbc/AppianPrimaryDS] Error during schema migration.
    ...
    Caused by: liquibase.exception.ValidationFailedException: Validation Failed:
    [number] changesets check sum

Cause

This is a known issue with checksums when moving the primary database for MySQL to MariaDB.

Action

To resolve the issue, the checksum column will need to be manually reset.

  1. Stop the application server if not already done.
  2. Back up the DATABASECHANGELOG table in the Appian Primary schema.
    CREATE TABLE DATABASECHANGELOG_BACKUP AS
      SELECT * FROM DATABASECHANGELOG;
  3. Null out the checksums in the DATABASECHANGELOG table:
    UPDATE DATABASECHANGELOG set MD5SUM=NULL;
  4. Start the application server and see if there are any issues.
  5. Drop the backup after everything is verified to be up and running.
    DROP TABLE DATABASECHANGELOG_BACKUP;

Affected Versions

This article applies to all self-managed versions of Appian.

Last Reviewed: November 2023

Related
Recommended