Confluence upgrade fails, web interface reports "Confluence had problems starting up...Transaction rolled back because it has been marked as rollback-only"

Still need help?

The Atlassian Community is here for you.

Ask the community


Platform notice: Server and Data Center only. This article only applies to Atlassian products on the server and data center platforms.

Problem

Attempting to upgrade to Confluence to 7.13.x fails in the following way:

  1. Confluence web-interface reports "Confluence had problems starting up...Transaction rolled back because it has been marked as rollback-only":
    Error description - Unable to start up Confluence. Fatal error during startup sequence

  2. The atlassian-confluence.log shows the following log messages:
    1. if logging levels are unchanged/default:

      atlassian-confluence.log
      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

       

    2. if /<confluence-install-dir>/confluence/WEB-INF/classes/log4j.properties is modified prior to the upgrade and the line for package com.atlassian.confluence.upgrade (in log4j.properties) is set to log-level DEBUG:

      atlassian-confluence.log
      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

      (info) 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

Diagnostic Steps

Executing the following SQL returns a non-zero number of rows:

select * from BANDANA where bandanacontext = 'com.gliffy.autosave';

Sample row entry looks like this:

bandanaidbandanacontextbandanakeybandanavalue
12345678com.gliffy.autosave47513acc9e7411ecb9090242ac120002
<com.gliffy.plugin.confluence.diagram.ConfluenceDiagram>  
<version>0</version>  
  <content>{"contentType":"application/gliffy+json"...[TRUNCATED]}</content>
  <isPublished>false</isPublished>
  <createDate>YYYY-MM-DD HH:MM:SS.mmm TIMEZONE</createDate>
  <versionId>0</versionId>
  <isOwner>false</isOwner>
  <isCollaborator>false</isCollaborator>
  <lastVersion>0</lastVersion>
  <isPNGAvailable>false</isPNGAvailable>
  <draft>false</draft>
  <key class="com.gliffy.plugin.confluence.diagram.ConfluenceKey">
    <filename>untitled</filename>
    <contentEntityObjectId>83441097</contentEntityObjectId>
  </key>
  <outputXml>true</outputXml>
  <draftId>47513acc9e7411ecb9090242ac120002</draftId>
</com.gliffy.plugin.confluence.diagram.ConfluenceDiagram>

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).


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.

  1. Rollback the currently broken setup to its pre-upgrade state (includes restoring the Confluence database to its pre-upgrade snapshot).

  2. Once done, start the restored Confluence instance to confirm that the restore was successful and Confluence is operational at its previous/restored version.

  3. After it has been confirmed that Confluence is operational, shut down Confluence.

  4. Execute the following SQL against the Confluence database to remove the problematic Gliffy Data:

    delete from BANDANA where bandanacontext = 'com.gliffy.autosave';

    (info) 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).

  5. With the Gliffy draft-data now removed, start Confluence once again to confirm that it remains operational.

  6. After it has been confirmed that Confluence is operational, shut it down once again, and then trigger the Confluence upgrade.

  7. 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
    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


DescriptionConfluence upgrade fails, web interface reports "Confluence had problems starting up...Transaction rolled back because it has been marked as rollback-only". Failure stems from Gliffy draft-data that throws a NPE during the Bandana XStream Migration upgrade task
ProductConfluence

Last modified on May 26, 2023

Was this helpful?

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