Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-45560

EOL check causes health check to be unable to lookup the version when marketplace is not available and the json file is deleted

    XMLWordPrintable

Details

    Description

      Summary

      The instance health plugin adds a check for the presence of confluence-healthcheck-eol.json in your Confluence home directory to check EOL date. If that file is not present on the system and the system cannot reach the marketplace 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 latest Confluence instance health plugin (2.1.7)
      2. Check that confluence-healthcheck-eol.json does not exist in $CONFLUENCE_HOME
      3. Remove the ability of the system to connect to the marketplace
      4. Check the instance health tab in Confluence

      Expected Results

      The check does not fail if the file does not exist, as the data is persisted somewhere else (e.g.: in the database) or the file is recreated automatically.

      Actual Results

      The error "Unable to verify the End of Life date for version '5.8'. The check has not been performed." is returned, instead of performing the health check. An exception such as the below will appear in the logs:

      2016-12-20 10:56:47,436 ERROR [SupportHealthCheckThread-5] [plugins.healthcheck.eol.EolSupportHealthCheck] check An error occurred when performing the EOL check, see the exceptions for more info
              java.net.UnknownHostException: marketplace.atlassian.com: nodename nor servname provided, or not known
              	at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
              	at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
              	at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
              	at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
              	at java.net.InetAddress.getAllByName(InetAddress.java:1192)
              	at java.net.InetAddress.getAllByName(InetAddress.java:1126)
              	at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)
              	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:111)
              	at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
              	at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
              	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
              	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
              	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
              	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
              	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
              	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
              	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
              	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
              	at com.atlassian.confluence.plugins.healthcheck.util.SupportEolCheckUtil.makeRequestToMarketplace(SupportEolCheckUtil.java:174)
              	at com.atlassian.confluence.plugins.healthcheck.util.SupportEolCheckUtil.getLatestConfluenceVersionName(SupportEolCheckUtil.java:148)
              	at com.atlassian.confluence.plugins.healthcheck.util.SupportEolCheckUtil.getVersionFromMarketplace(SupportEolCheckUtil.java:50)
              	at com.atlassian.confluence.plugins.healthcheck.eol.EolSupportHealthCheck.getVersionFromMarketplace(EolSupportHealthCheck.java:158)
              	at com.atlassian.confluence.plugins.healthcheck.eol.EolSupportHealthCheck.check(EolSupportHealthCheck.java:93)
              	at com.atlassian.support.healthcheck.impl.PluginSuppliedSupportHealthCheck.check(PluginSuppliedSupportHealthCheck.java:41)
              	at com.atlassian.support.healthcheck.concurrent.SupportHealthCheckTask.run(SupportHealthCheckTask.java:33)
              	at com.atlassian.support.healthcheck.concurrent.SupportHealthCheckProcess.run(SupportHealthCheckProcess.java:43)
              	at com.atlassian.support.healthcheck.thread.HealthCheckProcessCallable.call(HealthCheckProcessCallable.java:44)
              	at com.atlassian.support.healthcheck.thread.HealthCheckProcessCallable.call(HealthCheckProcessCallable.java:20)
              	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
              	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              	at java.lang.Thread.run(Thread.java:745)
      

      Workaround

      Download the attached confluence-healthcheck-eol.json and put it in your $CONFLUENCE_HOME directory.

      Notes

      Previously the EOL check did not take into account proxies when trying to establish a connection to the Atlassian Marketplace. However as of CONF-45506 this is fixed in Confluence Instance Health 2.1.10. There is an upgrade task that will create the file if it doesn't exist, however if the file is deleted or removed somehow (say deleted in a migration) the file is not created again.

      Lastly, note from screenshot that the Health Check UI reports a green tick for the End of Life Check. That means "The health check has passed successfully. No action is required." This is incorrect/misleading.

      Attachments

        1. confluence-healthcheck-eol.json
          0.2 kB
          Dave C
        2. EOL-Check.png
          10 kB
          Dave C

        Issue Links

          Activity

            People

              Unassigned Unassigned
              2f113cc8540a Mark Symons
              Votes:
              5 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: