Unable to Upgrade to JIRA 4.4 due to Problems Reading the Installation Directory

Still need help?

The Atlassian Community is here for you.

Ask the community

Summary

The error message - "Problems reading the installation directory." - is encountered when upgrading to JIRA 4.4 via the upgrade capable installer.

This is due to a missing HTTP connector in server.xml - there may be a HTTPS/AJP configuration that has replaced the HTTP connector.

To resolve the issue, add a valid HTTP connector configuration to server.xml.

The original JIRA issue can be found here - JRA-24958

Symptoms

  1. When upgrading JIRA 4.3 to JIRA 4.4 via the upgrade JIRA 4.4 upgrade capable installer, the following error message is encountered - "Problems reading the installation directory."  
  2. Upon selecting 'Retry', the same error is displayed
  3. Upon selecting 'Ignore', the installer continues until it checks to see if JIRA has been shutdown
  4. The installer prematurely exits with no errors displayed in Windows and a NullPointerException displayed in Linux.

The following is a screenshot from the Windows installer:

The following is the terminal output from the Linux installer:

60 root@xxxx opt# sudo ./atlassian-jira-4.4-x64.bin
Unpacking JRE ...
Starting Installer ...

This will install JIRA 4.4 on your computer.
OK [o, Enter], Cancel [c]

If JIRA is already installed on this machine, please read the following information carefully.
Please choose between creating a new JIRA installation or upgrading an
existing JIRA installation.
Create a new JIRA installation. [1, Enter], Upgrade an existing JIRA installation. [2]
2
Existing JIRA installation directory:
[/opt/JIRA-4.4]
/opt/JIRA-4.3
Problems reading the installation directory.
Ignore [1], Retry [2], Quit [3]
2
Problems reading the installation directory.
Ignore [1], Retry [2], Quit [3]
1
Back up JIRA directories

...

Checking if your instance of JIRA is running
In action "Run script" (screen "Check if JIRA is running [Display progress]"), property "Script":
java.lang.NullPointerException
        at I4jScript_Internal_270.eval(I4jScript_Internal_270.java:19)
        at I4jScript_Internal_270.evaluate(I4jScript_Internal_270.java:27)
        at com.install4j.runtime.installer.helper.Script.evaluate(Unknown Source)
        at com.install4j.runtime.installer.ContextImpl.runScript(Unknown Source)
        at com.install4j.runtime.installer.ContextImpl.runScript(Unknown Source)
        at com.install4j.runtime.beans.actions.control.RunScriptAction.execute(Unknown Source)
        at com.install4j.runtime.beans.actions.SystemInstallOrUninstallAction.install(Unknown Source)
        at com.install4j.runtime.installer.InstallerContextImpl.performActionInt(Unknown Source)
        at com.install4j.runtime.installer.ContextImpl.performAction(Unknown Source)
        at com.install4j.runtime.installer.controller.Controller.executeActions(Unknown Source)
        at com.install4j.runtime.installer.controller.Controller.handleCommand(Unknown Source)
        at com.install4j.runtime.installer.controller.Controller.start(Unknown Source)
        at com.install4j.runtime.installer.Installer.main(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
        at com.install4j.runtime.launcher.Launcher.main(Unknown Source)
Upgrade Check List

...

Your instance of JIRA is currently being upgraded.
Checking if JIRA has been shutdown...
In action "Check jira is shut [Run script]" (screen "Upgrade Actions [Display progress]"), property "Script":
java.lang.NullPointerException
        at I4jScript_Internal_276.eval(I4jScript_Internal_276.java:19)
        at I4jScript_Internal_276.evaluate(I4jScript_Internal_276.java:40)
        at com.install4j.runtime.installer.helper.Script.evaluate(Unknown Source)
        at com.install4j.runtime.installer.ContextImpl.runScript(Unknown Source)
        at com.install4j.runtime.installer.ContextImpl.runScript(Unknown Source)
        at com.install4j.runtime.beans.actions.control.RunScriptAction.execute(Unknown Source)
        at com.install4j.runtime.beans.actions.SystemInstallOrUninstallAction.install(Unknown Source)
        at com.install4j.runtime.installer.InstallerContextImpl.performActionInt(Unknown Source)
        at com.install4j.runtime.installer.ContextImpl.performAction(Unknown Source)
        at com.install4j.runtime.installer.controller.Controller.executeActions(Unknown Source)
        at com.install4j.runtime.installer.controller.Controller.handleCommand(Unknown Source)
        at com.install4j.runtime.installer.controller.Controller.start(Unknown Source)
        at com.install4j.runtime.installer.Installer.main(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
        at com.install4j.runtime.launcher.Launcher.main(Unknown Source)
Rolling back changes ...

Diagnosis

  • This error occurs for both 32 and 64-bit versions

Cause

While upgrading, the JIRA installer:

  • Checks to see if another instance of JIRA is running
  • Checks to see if JIRA has been successfully shutdown
  • Moves the HTTP port number from the old server.xml file into the new server.xml file

If there is no HTTP connector configuration specified in server.xml then the above NullPointerException is encountered.

Workaround

Users that have a HTTPS/AJP configuration or no HTTP configuration will need to perform the following steps:

  1. Backup the existing server.xml, located in the conf folder in the JIRA install directory.
  2. Add the following line to the existing server.xml file
  3. <Connector address="xxx.xxx.xxx.xxx" port="8080" protocol="HTTP/1.1"/>

  4. <Server port="8005" shutdown="SHUTDOWN">
        <Service name="Catalina">
    
            <Connector address="xxx.xxx.xxx.xxx" port="8080" protocol="HTTP/1.1"/>
    
            <!-- HTTPS Configuration
                <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
                  maxHttpHeaderSize="8192" SSLEnabled="true"
                  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                  enableLookups="false" disableUploadTimeout="true"
                  acceptCount="100" scheme="https" secure="true"
                  clientAuth="false" sslProtocol="TLS" useBodyEncodingForURI="true"/>
            -->
    
            <!-- AJP Configuration
                  <Connector port="8009" redirectPort="8443" enableLookups="false" protocol="AJP/1.3" URIEncoding="UTF-8"/>
            -->
    
            ...
    
        </Service>
    </Server>
    
  5. Run the JIRA upgrade capable installer
  6. Once the install is complete, stop the JIRA service
  7. Copy the contents of server.xml backup into the new server.xml
  8. Restart the JIRA service
Last modified on Mar 30, 2016

Was this helpful?

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