Upgrading 7.12.0 to 7.12.3 Server.xml - service won't start

Ryan Manning October 19, 2018

Steps:

  1. Shutdown JIRA service
  2. Backup/Upgrade JIRA 7.12.0 to 7.12.3
  3. Error message displays stating: "Setup: Tomcat is misconfigured

    The server.xml file is missing parameters needed by Jira to handle requests that contain special characters."

  4. Followed steps outlined here: https://confluence.atlassian.com/jirakb/changing-server-xml-to-handle-requests-with-special-characters-958453799.html

First problem...how the hell do I know what connectors my application is using? Comparing the previous server.xml file to the updated one, there doesn't appear to be any sections I need to uncomment; however, the help doc indicates I need to uncomment something.

Second problem...If I uncomment any section in the server.xml file and restart the JIRA service, the JIRA service won't actually start.

Lastly...JIRA will run but only when using standard HTTP protocol and not HTTPS or HTTP with redirect to HTTPS.

2 answers

1 accepted

3 votes
Answer accepted
Daniel Eads
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 19, 2018

Hey Ryan,

Using an editor with syntax highlighting is very handy in figuring out which connectors are active. In this screenshot, it's very easy to see the top connector is active and the second one is inactive (highlighters don't colorize "commented" text):

image.png

The <!-- and --> signify the beginning/end of a comment block. I personally like using vim as a text editor - depending on your OS's default settings you may need to turn syntax highlighting on if you're using vim. On Windows, Notepad++ should have it on by default.

Understanding your active connectors

Typically there's a connector at port 8080 that's taking HTTP connections - Jira comes with this connector by default. If you're running a reverse proxy such as Apache or nginx in front of Jira, you may have uncommented another connector in the file (like the bottom one in my screenshot). If you're serving HTTPS directly from Tomcat, that would be still a different connector.

So at this point I'd recommend taking a look at your backed-up server.xml from your 7.12.0 install and seeing what connectors are active (using syntax highlighting to guide you). Make a note of how many connectors there are and what port they're listening on.

Now pop open your 7.12.3 server.xml file and compare the list against what's active in 7.12.3. Make sure the same number of active connectors are present, and that they're listening on the same ports.

 

Changes in 7.12.3 to the connector settings

You've linked to the KB article describing changes to the connector options in 7.12.3 and above. The changes boil down to adding these two parameters:

relaxedPathChars="[]|" relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"

This needs to be done for every active connector if you didn't use the server.xml that came in the installer file (for example, if you copied your old server.xml into the upgraded install directory). The error you're seeing on Jira startup relates to one of the active connectors not having these options in place.

You won't necessarily need to uncomment anything - you just need the relaxedPathChars and relaxedQueryChars options added to the connectors.

 

Getting HTTPS working

Hopefully looking at your previous server.xml file shed some light on which connectors were/weren't active and you were able to find and correct a difference. If you had a previous setup working with HTTPS, I suspect it will start working again once you're able to start Jira.

If not, could you post your active connectors here so we can take a look at what's going on? It would also be helpful to know if you're using a reverse proxy such as Apache/nginx/etc.

Thanks,
Daniel | Atlassian Support

Ryan Manning October 19, 2018

"So at this point I'd recommend taking a look at your backed-up server.xml from your 7.12.0 install and seeing what connectors are active (using syntax highlighting to guide you)."

The 7.12.0 server.xml file doesn't appear to have any other Connectors enabled other than the defaults. Additionally, the 7.12.3 server.xml appears to have added on the "relaxedQueryChars" and "relaxedPathChars" variables. Other than those additions, I'm not seeing a whole lot of differences for our setup. All ports are identical between the two.

"This needs to be done for every active connector if you didn't use the server.xml that came in the installer file"

Those changes were made but still no luck in getting it to work properly. (See image)

2018-10-19_12-27-39

"I suspect it will start working again once you're able to start Jira"

JIRA is actively starting/restarting now. However, I still cannot use HTTPS (as setup using the JIRA/bin/config.bat) method for installing the SSL certificate and HTTP redirect to HTTPS (8443).

Thanks for the help!

Daniel Eads
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
October 19, 2018

Hey Ryan!

Down at the bottom of your screenshot where you've blurred some keystore info out (line 109), you've got a second active connector (serving HTTPS). That connector is missing the required options:

relaxedPathChars="[]|" relaxedQueryChars="[]|{}^&#x5c;&#x60;&quot;&lt;&gt;"

 Should be good to go once those options are added!

Cheers,
Daniel

Ryan Manning October 19, 2018

Success! Thanks Daniel.

Sathish K r March 3, 2020

Hi Ryan, 

Thanks you, :)

0 votes
Tony Kocjan November 21, 2019

Hi Ryan

It's near the end of 2019 and your advise is still good.  I upgraded from 7.1.8 directly to 8.5.1 and encountered the same problem.  I added the two options you mentioned above to the server.xml provided with the install and it worked.

Thanks - Tony

Suggest an answer

Log in or Sign up to answer