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

JIRA getHealthCheckStatus method doesn't catch CancellationException

    XMLWordPrintable

Details

    Description

      Summary

      JIRA getHealthCheckStatus method doesn't catch CancellationException. JIRA getHealthCheckStatus waits 5 sec to finish each healthcheck and after that time it is cancelled.

      Steps to Reproduce

      1. Use slow executed health-check. This could be ActiveObjects health-check with Oracle or Lucene at heavy loaded system
      2. Execute health-check

      Expected Results

      Health check with work or will be specific about cause of error

      Actual Results

      The below exception is thrown in the atlassian-jira.log file:

      2016-04-18 01:57:15,402 http-nio-8090-exec-18 ERROR admin 117x1464x1 1h6ljo7 10.98.61.2 /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)
      	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:258)
      	at com.atlassian.support.healthcheck.api.model.HealthCheckStatusReport.<init>(HealthCheckStatusReport.java:29)
      	at com.atlassian.support.healthcheck.api.model.HealthCheckStatusReport.<init>(HealthCheckStatusReport.java:16)
      	at com.atlassian.support.healthcheck.api.model.HealthCheckStatusReport$Builder.build(HealthCheckStatusReport.java:59)
      	at com.atlassian.support.healthcheck.impl.HealthCheckServiceImpl.runChecks(HealthCheckServiceImpl.java:88)
      	at com.atlassian.support.healthcheck.rest.HealthCheckResource.checkDetails(HealthCheckResource.java:115)
      

      Notes

      See related ActiveObjects health-check with Oracle ticket: https://jira.atlassian.com/browse/JRA-60712

      Workaround

      None

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ayakovlev@atlassian.com Andriy Yakovlev [Atlassian]
              Votes:
              10 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: