Node does not start after a Zero Downtime Upgrade between major versions
問題
After upgrading a Jira Data Center node between major versions (e.g. from 8.x to 9.x) using the Zero Downtime Upgrade method, the upgraded node does not start up.
診断
At the $JIRA_INSTALL/logs/catalina.out and/or $JIRA_LOCAL_HOME/log/atlassian-jira.log files from the upgraded node, a log entry like the following is populated while the node is starting up:
2023-02-10 14:13,125+0000 main ERROR [c.a.jira.startup.LauncherContextListener] Unable to start JIRA.
java.lang.IllegalStateException: Your node with Jira version 9.4.2 will not start up with version 8.20.5 because Jira does not support zero downtime upgrades between major releases. See https://docs.atlassian.com/jira/jadm-docs-080/Upgrading+Jira+applications.
原因
The "Upgrade mode" for Jira Data Center described in the Upgrading Jira Data Center with zero downtime article does not work for upgrades between major Jira versions (e.g. from 8.x to 9x), so the startup process will be interrupted for any upgraded node. Quoting the relevant section from that documentation:
Zero downtime upgrade isn't available when upgrading from a major Jira version to another major version (for example, from Jira 8.x to Jira 9.x). You'll need to use one of the regular methods.
ソリューション
Since the upgraded node won't be able to start up unless all other nodes are upgraded as well (following one of the other upgrade methods excluding Zero downtime from the Upgrade methods KB article), the following approach can be used:
- Access one the nodes that were not upgraded yet through Jira's user interface, then go to
Administration (⚙ icon) > Applications > Jira upgrades
- Select "Cancel upgrade" to interrupt the Zero Downtime Upgrade
- Roll back the upgraded node to its previous version, then restart it
- Schedule a maintenance window to stop the whole Jira cluster and upgrade all nodes, which is required for upgrade methods between major versions such as Upgrading Jira Data Center (installer) or Upgrading Jira Data Center (manual)