Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-61781

End-of-Life health check fails when using a proxy with Jira

    XMLWordPrintable

Details

    Description

      Summary

      The 2.1.12 instance health plugin adds a check for the presence of jira-healthcheck-eol.json in your jira home directory to check EOL date. If that file is not present on the system and the system cannot reach the marketplacet to check EOL the health check plugin will not run and will throw an error of 'there was an error performing the instance health check' in the GUI.

      Steps to Reproduce

      1. Install the 2.1.12 instance health plugin
      2. Check that jira-healthcheck-eol.json does not exist in JIRA_HOME
      3. remove the ability of the system to connect to the marketplace
      4. Check the instance health tab in JIRA

      Expected Results

      That you can run the instance health check if JIRA does not have connectivity to the internet/marketplace

      Actual Results

      The below exception is thrown in the xxxxxxx.log file:

      2016-06-29 15:36:54,900 http-nio-8080-exec-8 ERROR jgibbons 936x230x1 1hki7mv 10.10.21.19,10.68.179.129 /rest/supportHealthCheck/1.0/checkDetails [c.a.p.r.c.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: null
      java.util.concurrent.CancellationException
      	at java.util.concurrent.FutureTask.report(FutureTask.java:121)
      	at java.util.concurrent.FutureTask.get(FutureTask.java:206)
      	at com.atlassian.support.healthcheck.impl.DefaultSupportHealthCheckManager.getHealthCheckStatus(DefaultSupportHealthCheckManager.java:107)
      	at com.atlassian.support.healthcheck.impl.DefaultSupportHealthCheckManager.access$000(DefaultSupportHealthCheckManager.java:30)
      	at com.atlassian.support.healthcheck.impl.DefaultSupportHealthCheckManager$1.apply(DefaultSupportHealthCheckManager.java:96)
      	at com.atlassian.support.healthcheck.impl.DefaultSupportHealthCheckManager$1.apply(DefaultSupportHealthCheckManager.java:92)
      	at com.google.common.collect.Lists$TransformingRandomAccessList$1.transform(Lists.java:617)
      	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48)
      	at java.util.AbstractCollection.toArray(AbstractCollection.java:141)
      ...
      2016-06-29 15:37:52,809 SupportHealthCheckThread-6 ERROR ServiceRunner     [c.a.j.p.healthcheck.support.EOLSupportHealthCheck] An error occurred when performing the EOL check, see the exceptions for more info
      org.apache.http.conn.ConnectTimeoutException: Connect to marketplace.atlassian.com:443 [marketplace.atlassian.com/131.103.28.7] failed: Connection timed out
      
      

      Workaround

      Create <JIRA_HOME>/jira-healthcheck-eol.json with example content. This file is located in the /var/atlassian/application-data/jira folder by default on a linux system.

      example from 7.2.0 release
      {"versions":[{"name":"7.2.0","releaseDate":"2016-08-24"},{"name":"7.1.0","releaseDate":"2016-02-10"},{"name":"7.0.0","releaseDate":"2015-09-25"}]}
      

      A similar file exists for <CONFLUENCE_HOME>/shared-home/confluence-healthcheck-eol.json, see CONFSERVER-45506

      Notes

      The bug occurs in environments that utilize outbound proxy, whereby, even when configuration are done correctly (adding marketplace to the non proxy host config), and connection towards Marketplace is possible (add-ons and UPM works fine), the healthcheck plugin still throws Connect to marketplace.atlassian.com:443 [marketplace.atlassian.com/131.103.28.7] failed: Connection timed out.

      The root cause is the connection is not made to the Atlassian Marketplace with the system proxy settings, so it fails.

      UPDATE

      This has been fixed in JIRA Instance Health 2.1.20, which can be downloaded from the Atlassian Marketplace or updated through Manage Add-ons. The fix now takes into account system settings such as proxies.

      To clarify, there are two separate bugs for fixing the End of Life health check:

      1. Proxies were not originally taken into account when accessing the Atlassian Marketplace, which is fixed in this bug, JRASERVER-61781.
      2. If the jira-healthcheck-eol.json is not available, the check is unable to verify the results. This is tracked in JRASERVER-63567.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              schristopher@atlassian.com ScottC
              Votes:
              30 Vote for this issue
              Watchers:
              54 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: