Confluence upgrade fails, web interface reports "Confluence had problems starting up...Transaction rolled back because it has been marked as rollback-only"
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
Problem
Attempting to upgrade to Confluence to 7.13.x fails in the following way:
Confluence web-interface reports "
Confluence had problems starting up...Transaction rolled back because it has been marked as rollback-only
":The
atlassian-confluence.log
shows the following log messages:if logging levels are unchanged/default:
atlassian-confluence.log
1 2 3 4 5 6 7 8
YYYY-MM-DD HH:MM:SS,mmm INFO [Catalina-utility-1] [atlassian.confluence.upgrade.UpgradeTask] doDeferredUpgrade Starting Bandana XStream Content Migration for 1.1.1 format YYYY-MM-DD HH:MM:SS,mmm INFO [Catalina-utility-1] [atlassian.confluence.upgrade.UpgradeTask] doDeferredUpgrade Migrating <N-number> context(s) in Bandana YYYY-MM-DD HH:MM:SS,mmm WARN [Catalina-utility-1] [confluence.impl.hibernate.ConfluenceHibernateTransactionManager] doRollback Performing rollback. Transactions: [com.atlassian.confluence.upgrade.upgradetask.BandanaXStreamValueUpgradeTask.doDeferredUpgrade]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT (Session #<SessionID>) Showing 10 last transactions at this level out of <M-number> in total: YYYY-MM-DD HH:MM:SS,mmm ERROR [Catalina-utility-1] [atlassian.config.lifecycle.LifecycleManager] panicAndShutdown Unable to start up Confluence. Fatal error during startup sequence: confluence.lifecycle.core:pluginframeworkdependentupgrades (Run all the upgrades that require the plugin framework to be available) org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
if
/<confluence-install-dir>/confluence/WEB-INF/classes/log4j.properties
is modified prior to the upgrade and the line for packagecom.atlassian.confluence.upgrade
(inlog4j.properties
) is set to log-levelDEBUG
:atlassian-confluence.log
1 2 3 4 5 6 7 8 9 10 11 12 13
YYYY-MM-DD HH:MM:SS,mmm INFO [main] [atlassian.confluence.upgrade.UpgradeTask] doDeferredUpgrade Starting Bandana XStream Content Migration for 1.1.1 format YYYY-MM-DD HH:MM:SS,mmm INFO [main] [atlassian.confluence.upgrade.UpgradeTask] doDeferredUpgrade Migrating <N-number> context(s) in Bandana YYYY-MM-DD HH:MM:SS,mmm DEBUG [main] [atlassian.confluence.upgrade.UpgradeTask] migrateDataForKey Couldn't migrate key '<Alphanumeric-String>' for context '[com.atlassian.confluence.setup.bandana.ConfluenceBandanaContext@bdfd6df8, spaceKey='com.gliffy.autosave']' in Bandana as corresponding Class is not available or serialization failed java.lang.NullPointerException at com.gliffy.plugin.confluence.diagram.ConfluenceDiagram.equals(ConfluenceDiagram.java:129) YYYY-MM-DD HH:MM:SS,mmm WARN [Catalina-utility-1] [confluence.impl.hibernate.ConfluenceHibernateTransactionManager] doRollback Performing rollback. Transactions: [com.atlassian.confluence.upgrade.upgradetask.BandanaXStreamValueUpgradeTask.doDeferredUpgrade]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT (Session #<SessionID>) Showing 10 last transactions at this level out of <M-number> in total: YYYY-MM-DD HH:MM:SS,mmm ERROR [Catalina-utility-1] [atlassian.config.lifecycle.LifecycleManager] panicAndShutdown Unable to start up Confluence. Fatal error during startup sequence: confluence.lifecycle.core:pluginframeworkdependentupgrades (Run all the upgrades that require the plugin framework to be available) org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
ℹ️ note the appearance of "
Couldn't migrate key...corresponding Class is not available or serialization failed java.lang.NullPointerException at com.gliffy.plugin.confluence.diagram.ConfluenceDiagram.equals(ConfluenceDiagram.java:129)
" pattern in the stack-trace
Diagnosis
Environment
Confluence being upgraded from any older version (until version 7.4.x) to version 7.13.x
Gliffy Diagrams for Confluence (by Gliffy) is installed
Diagnostic Steps
Executing the following SQL returns a non-zero number of rows:
1
select * from BANDANA where bandanacontext = 'com.gliffy.autosave';
Sample row entry looks like this:
|
|
|
|
---|---|---|---|
|
|
|
|
Cause
The upgrade fails because because a NullPointerException is encountered in Gliffy code (at com.gliffy.plugin.confluence.diagram.ConfluenceDiagram.equals(ConfluenceDiagram.java:129)
) during Confluence's Bandana XStream Content Migration upgrade task (com.atlassian.confluence.upgrade.upgradetask.BandanaXStreamValueUpgradeTask
).
Solution
Resolution
Always back up your data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.
Rollback the currently broken setup to its pre-upgrade state (includes restoring the Confluence database to its pre-upgrade snapshot).
Once done, start the restored Confluence instance to confirm that the restore was successful and Confluence is operational at its previous/restored version.
After it has been confirmed that Confluence is operational, shut down Confluence.
Execute the following SQL against the Confluence database to remove the problematic Gliffy Data:
1
delete from BANDANA where bandanacontext = 'com.gliffy.autosave';
ℹ️ The Gliffy diagrams themselves are saved as attachments on Confluence pages. These rows in the bandana table can be deleted without adverse consequences (source: Uninstall and reinstall Gliffy).
With the Gliffy draft-data now removed, start Confluence once again to confirm that it remains operational.
After it has been confirmed that Confluence is operational, shut it down once again, and then trigger the Confluence upgrade.
Track progress of an error-free Bandana XStream Content Migration upgrade task and an overall successful Confluence upgrade by checking the
atlassian-confluence.log
for messages like these:atlassian-confluence.log
1 2 3 4
YYYY-MM-DD HH:MM:SS,mmm INFO [main] [atlassian.confluence.upgrade.UpgradeTask] doDeferredUpgrade Starting Bandana XStream Content Migration for 1.1.1 format YYYY-MM-DD HH:MM:SS,mmm INFO [main] [atlassian.confluence.upgrade.UpgradeTask] doDeferredUpgrade Migrating <N-number> context(s) in Bandana YYYY-MM-DD HH:MM:SS,mmm INFO [main] [atlassian.confluence.upgrade.UpgradeTask] doDeferredUpgrade Finished Bandana XStream Content Migration YYYY-MM-DD HH:MM:SS,mmm INFO [main] [atlassian.confluence.upgrade.AbstractUpgradeManager] entireUpgradeFinished Upgrade completed successfully
Was this helpful?