Jira Service Desk 4.0.x upgrade notes
Below are some important notes on upgrading to Jira Service Desk 4.0. For details of the new features and improvements in this release, see the Jira Service Desk 4.0 release notes.
As Jira Service Desk runs on the Jira platform, you should also view the Jira platform 8.0 upgrade notes.
Summary of changes
Skip to
- Changes to indexing
- Disabling incompatible apps
- Jira Service Desk might take longer to start after the upgrade
- Zero downtime upgrade for Data Center isn't supported
- Changes to several configuration properties
- Memory requirements
- Decreasing heap size for Jira Service Desk on 32-bit systems
- New configuration for MySQL 5.7
- Installation directory for Plugin 1 type apps
- Reduced logging to the catalina.out file
- Apache Tomcat upgrade
- End of support for fugue
- App developers
- Upgrade procedure
Changes to indexing
One of the changes coming with Jira 8.0 is the upgrade of the Lucene library, which is responsible for the index in Jira. This change improves indexing (and searching), but it also makes your current index incompatible with the new version. That’s nothing to worry about, as you can rebuild the whole index by ‘reindexing’ Jira, an action you would probably run after a normal upgrade anyway. After reindexing, the index will be compatible with any later version.
What changes?
Your current index will remain in <home-directory>/caches/indexes
(feel free to delete it after the upgrade). From now on, the new index will be stored in the following directory:
<home-directory>/caches/indexesV1
How does it affect the upgrade?
The new index will trigger an automatic reindex in Jira just after the upgrade (more precisely, when you start Jira). Because of that, there’s a great chance you’ll reindex twice, after starting Jira and after making some changes that require reindexing. For example, upgrading plugins. Reindexing might be really time consuming in large Jira instances, that’s why we’re recommending that you disable the automatic reindex and run it manually later, when you’re ready.
How to disable automatic reindex
We’ve included steps needed to disable the automatic reindex in our upgrade procedures. If you’re looking for a quick answer, though, you’ll need to add the following line to the <home-directory>/jira-config.properties
file before you start Jira after the upgrade.
upgrade.reindex.allowed=false
Recommended actions
Disable automatic reindex to avoid reindexing twice, and run the reindex manually, whenever you’re ready.
If your Jira instance is small and an extra reindex doesn't sound like a problem, you don't need to disable it. Your upgrade won't be affected in any way; it's just for saving you some time.
Disabling incompatible apps (add-ons)
You need to disable apps that are incompatible with Jira 8.0 or upgrade them to compatible versions, if these are available. Incompatible apps may block the Jira upgrade or startup, because they're using elements that are no longer available or that have changed in the new version, like the Jira index, APIs, or some parts of the UI.
Recommended actions
Disable all incompatible apps, or upgrade them if they have compatible versions. For more info on what you should do, see Preparing for the upgrade.
We always recommend that you test the upgrade in a test environment. Once you upgrade the test environment to Jira 8.0, you can try enabling the incompatible apps and see how they behave with the new version. If they don't affect your Jira instance in a significant way, you can use them with 8.0, even if they haven't been declared compatible yet.
Jira might take longer to start after the upgrade
One of the improvements we’re shipping in Jira 8.0 is the addition of new indexes to two of the most heavily used database tables (changeitem
, changegroup
). Thanks to that, issues will load faster, and so will queries executed against the database to retrieve the data that issues contain.
Adding indexes to these tables can take several minutes, and will happen when you start Jira after the upgrade. Learn more
Zero downtime upgrade (ZDU) for Data Center isn't supported
Because of significant changes we've introduced to the Jira platform in 8.0, we can't support the zero downtime upgrade from Jira Service Desk Data Center 3.x to 4.0. To upgrade, you'll need to use a regular upgrade method. Zero downtime upgrade will be available again when upgrading within the 4.x line.
Changes to several configuration properties
In Jira 8.0, we’ve changed default values for some of the properties related to indexing, and also made several properties obsolete.
Obsolete properties:
jira.index.commitpolicy
jira.index.batch.maxbuffereddocs
jira.index.interactive.maxbuffereddocs
jira.index.batch.maxmergedocs
jira.index.interactive.maxmergedocs
jira.index.batch.mergefactor
jira.index.interactive.mergefactor
Properties that have new default values:
jira.index.issue.threads
(20)jira.index.batch.maxrambuffermb
(1024)jira.index.interactive.maxrambuffermb
(1024)
You can always view the jpm.xml file to see all supported properties, and their current values.
The maxrambuffermb
properties define the maximum size of a memory write buffer for Lucene documents queued to be saved into the index files. We’ve increased it to better handle issues with large number of custom fields. Because of this change, we’ve also increased the default maximum heap size (xmx), as described below.
Memory requirements
Because of the increase in maxrambuffermb
, we’ve also increased the default maximum heap size (xmx).
Property | Jira 7.x | Jira 8.0 |
---|---|---|
Xmx | 768 | 2048 |
jira.index.batch.maxrambuffermb | 100 | 1024 |
jira.index.interactive.maxrambuffermb | 16 | 1024 |
Jira 8.0 should require less memory, however we still need the xmx
value to be higher than maxrambuffermb
. If you already had xmx
set to 2GB, you shouldn’t need to increase this value.
If you’re running Jira on a 32-bit system, the 2GB heap size will be too high, and you’ll need to decrease it, as described below.
Decreasing heap size for Jira on 32-bit systems
This applies only if you’re installing or upgrading Jira manually, by using the archive. Installers will do it for you.
If you’re installing or upgrading Jira on a 32-bit system, you need to decrease the maximum heap size available to Jira. The default for 64-bit systems in Jira 8.0 is 2GB, which is too much for a 32-bit system, and may not fit into the available memory. We’ve created a new setenv32.bat/.sh
file that has all the right settings, you just need to put it in the right place.
Complete these steps after extracting files from the archive, but before starting Jira:
Step 1: Rename the default setenv
file
Go to
<Jira-install-directory>/bin
, and delete thesetenv.bat / .sh
file (or change its name).Rename
setenv32.bat / .sh
tosetenv.bat / .sh
. Jira will use this file on startup.
Step 2: Add the properties to the jira-config.properties
file .
Go to Jira’s home directory, and edit the
jira-config.properties
file. If the file isn’t there, you can create it. Learn moreAdd the following properties:
jira.index.batch.maxrambuffermb=256 jira.index.interactive.maxrambuffermb=256
New configuration for MySQL 5.7
We've added new configuration steps for MySQL 5.7 to let you use 4-byte characters in Jira. Your old configuration will still work, but you won't be able to use 4-byte characters. Learn more
Installation directory for Plugin 1 type apps
Make sure that your P1 apps are installed in <Jira-install-dir>/atlassian-Jira/WEB-INF/lib
. If you install these apps along with regular apps from Atlassian Marketplace in <jira-home-dir>/plugins/installed-plugins
, they won’t work in Jira 8.0. For more information, see Installing Marketplace apps.
Reduced logging to the catalina.out file
Jira applications used to mirror the application log output (atlassian-jira.log
) in the Tomcat log file, catalina.out
. Since the catalina.out
file couldn’t be rotated by Jira using the Log4j configuration (like it happens with the application log), the file grew significantly and didn’t contain any unique or useful events from Jira. Jira admins could work around this issue by using log-rotation scripts at the OS level, but that complicated the setup.
To fix this issue, we’ve removed mirroring the log output to catalina.out
(process Stdout
), leaving only the following basic events that are useful for our support teams:
log4j.logger.com.atlassian.jira.(upgrade|startup|config.database)
We’ll keep logging all events into the atlassian-jira.log
file, like it was before. Also, we’ve increased the number of atlassian-jira.log
rotated files from 5 to 10.
Apache Tomcat upgrade
We've upgraded Apache Tomcat to version 8.5.32, which requires you to make changes to the server.xml
file.
What's the problem?
The Apache Tomcat server is filtering out requests that contain special characters, making them fail. That's because Tomcat is using a different encoding and URI standard than most browsers. The problem is most visible when searching with JQL as you’d use a number of special characters when doing it (e.g. []<>), but it can also affect other pages in Jira. Learn more
Versions affected
We've made this change in Jira Service Desk 3.15.2. If you're upgrading from this version or any later, you should've already done these steps.
Steps to take
To solve the problem, edit the server.xml
file, and add properties that make Tomcat accept special characters in the requests.
- Go to
<Jira-installation-directory>/conf
, and edit theserver.xml
file. - Find all connectors your application is using. Just search for Connector in the file, or look at the example below.
Add
relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`"<>"
to the connector properties inserver.xml
. For example:<Connector port="8080" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`"<>" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" bindOnInit="false"/>
- Restart Jira.
- (Data Center) Repeat these steps on each node.
End of support for fugue
In Jira Service Desk 4.0, we've removed com.atlassian.fugue, and updated our APIs to use Core Java Data types and Exceptions. We’ve introduced this change to make it easier to develop on Jira Service Desk.
What you'll need to do
Before using Core Java Data types and Exceptions, update any scripts, integrations, or apps that make requests to endpoints returning com.atlassian.fugue. This stops them breaking after the update.
Read our Java API docs and REST API docs to learn how.
App developers
See Preparing for Jira 8.0 for all important changes regarding apps.
Upgrade procedure
See Upgrading Jira applications for complete upgrade procedures, including all available upgrade methods, and pre-upgrade steps that are required for Jira Service Desk 4.0. For a more tailored upgrade, also check our Pre-upgrade planning tool that will recommend a version to upgrade to, run pre-upgrade checks, and provide you with a custom upgrade guide with step-by-step instructions.