Uploaded image for project: 'Jira Service Management Data Center'
  1. Jira Service Management Data Center
  2. JSDSERVER-213

Indexing affected by issues paused before start

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Low
    • 1.1.4
    • 1.1.1, 1.1.2
    • None

    Description

      Summary

      Reindexing an instance with Service Desk enabled and containing an issue with an unexpected status generates an error, additionally updating issues can also cause this same error.

      Steps to Reproduce

      Either of the following:

      • Reindex an instance with Service Desk enabled and containing an issue with an unexpected status.
      • Adding a comment onto an issue incorrectly updates the SLA and can add multiple ticks.

      Expected Results

      • No errors are present during indexing.
      • The SLA is not incorrectly updated.

      Actual Results

      During reindexing the following errors are output:

      2013-12-11 00:08:34.929363500 2013-12-11 00:08:34,921 JiraTaskExectionThread-5 WARN sysadmin 8x851x1 jkie56 46.243.25.78,131.103.26.65 /rest/servicedesk/1/servicedesk/OS/sla/consistency [atlassian.jira.index.AccumulatingResultBuilder] java.lang.IllegalArgumentException: start < stop
      2013-12-11 00:08:35.923852500 2013-12-11 00:08:35,923 JiraTaskExectionThread-5 WARN sysadmin 8x851x1 jkie56 46.243.25.78,131.103.26.65 /rest/servicedesk/1/servicedesk/OS/sla/consistency [atlassian.jira.index.AccumulatingResultBuilder] java.lang.IllegalArgumentException: start < stop

      And when adding a comment to the issue the below stack trace is output:

      014-01-07 11:08:24,741 http-bio-8080-exec-1 ERROR jjarke 668x155132x1 1ocqex8 217.73.4.138,10.104.120.16 /rest/api/2/issue/TWO-2544/comment [servicedesk.internal.util.SafeRunner] Unable to run event handler SLA Cycle Update
      java.lang.IllegalArgumentException: start < stop
      	at com.atlassian.jira.util.dbc.Assertions.is(Assertions.java:171)
      	at com.atlassian.servicedesk.internal.sla.metric.DateTimeRange.<init>(DateTimeRange.java:26)
      	at com.atlassian.servicedesk.internal.sla.goal.GoalCalculationServiceImpl.getOngoingGoalStatus(GoalCalculationServiceImpl.java:50)
      	at com.atlassian.servicedesk.internal.sla.goal.SlaUpdateManagerImpl.buildCompleteDataFromOngoing(SlaUpdateManagerImpl.java:336)
      	at com.atlassian.servicedesk.internal.sla.goal.SlaUpdateManagerImpl.updateOngoingSLAState(SlaUpdateManagerImpl.java:241)
      	at com.atlassian.servicedesk.internal.sla.goal.SlaUpdateManagerImpl.updateSla(SlaUpdateManagerImpl.java:186)
      	at com.atlassian.servicedesk.internal.sla.listener.SlaCycleUpdater.processMetricConfiguration(SlaCycleUpdater.java:210)
      	at com.atlassian.servicedesk.internal.sla.listener.SlaCycleUpdater.processIssueEvent(SlaCycleUpdater.java:150)
      	at com.atlassian.servicedesk.internal.sla.listener.SlaCycleUpdater.runCycleUpdate(SlaCycleUpdater.java:109)
      	at com.atlassian.servicedesk.internal.sla.listener.SlaCycleUpdater.access$000(SlaCycleUpdater.java:36)
      	at com.atlassian.servicedesk.internal.sla.listener.SlaCycleUpdater$1.run(SlaCycleUpdater.java:80)
      	at com.atlassian.servicedesk.internal.util.SafeRunner.withTryCatchCondom(SafeRunner.java:58)
      	at com.atlassian.servicedesk.internal.util.SafeRunner.access$000(SafeRunner.java:14)
      	at com.atlassian.servicedesk.internal.util.SafeRunner$1.run(SafeRunner.java:36)
      	at com.atlassian.servicedesk.bootstrap.lifecycle.LifecycleLock.runSafely(LifecycleLock.java:49)
      	at com.atlassian.servicedesk.internal.util.SafeRunner.run(SafeRunner.java:31)
      	at com.atlassian.servicedesk.internal.sla.listener.SlaCycleUpdater.onIssueEvent(SlaCycleUpdater.java:75)  <+2> (DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36)
      	at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$2.run(AsynchronousAbleEventDispatcher.java:66)
      	at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1.execute(AsynchronousAbleEventDispatcher.java:32)
      	at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:60)
      	at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:160)
      	at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:79)
      	at com.atlassian.multitenant.event.DefaultPeeringEventPublisherManager.publish(DefaultPeeringEventPublisherManager.java:17)
      	at com.atlassian.multitenant.event.PeeringEventPublisher.publish(PeeringEventPublisher.java:23)
      	at com.atlassian.jira.event.issue.IssueEventDispatcher.dispatchEvent(IssueEventDispatcher.java:184)
      	at com.atlassian.jira.event.issue.IssueEventDispatcher.dispatchEvent(IssueEventDispatcher.java:122)
      	at com.atlassian.jira.issue.comments.DefaultCommentManager.dispatchEvent(DefaultCommentManager.java:352)
      	at com.atlassian.jira.issue.comments.DefaultCommentManager.create(DefaultCommentManager.java:216)
      	at com.atlassian.jira.issue.comments.DefaultCommentManager.create(DefaultCommentManager.java:166)
      	at com.atlassian.jira.issue.comments.DefaultCommentManager.create(DefaultCommentManager.java:160)
      	at com.atlassian.jira.bc.issue.comment.DefaultCommentService.create(DefaultCommentService.java:167)
      	at com.atlassian.jira.bc.issue.comment.DefaultCommentService.create(DefaultCommentService.java:154)  <+2> (DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$AbstractMultiTenantAwareInvocationHandler.invokeInternal(MultiTenantComponentFactoryImpl.java:181)
      	at com.atlassian.multitenant.impl.MultiTenantComponentFactoryImpl$MultiTenantAwareInvocationHandler.invoke(MultiTenantComponentFactoryImpl.java:211)
      	at com.sun.proxy.$Proxy189.create(Unknown Source)  <+2> (DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129)
      	at com.sun.proxy.$Proxy189.create(Unknown Source)  <+2> (DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:601)
      	at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154)
      	at com.sun.proxy.$Proxy189.create(Unknown Source)
      	at com.atlassian.jira.rest.v2.issue.CommentResource.addComment(CommentResource.java:266)
      	at com.atlassian.jira.rest.v2.issue.IssueResource.addComment(IssueResource.java:1350)  <+2> (DelegatingMethodAccessorImpl.java:43)
      

      Workaround

      For indexing, disabling the plugin allow the instance to be reindexed successfully. However when the plugin is re-enabled the instance will request for a reindex and the plugin may not operate successfully after the indexing operation fails.

      It is not possible to workaround the issue comments bug - the plugin must be upgraded for this to happen.

      Notes

      The database indicates the issue only ever encountered a PAUSED state:

        id   | issue | customfield | parentkey |                      stringvalue                       | numbervalue |
                                      textvalue                                                                                                                                                          | datevalue | valuetype
      -------+-------+-------------+-----------+--------------------------------------------------------+-------------+--------------------------------------------------------------------------------------------------------------------------
      ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+-----------
       13000 | 10614 |       10024 |           |                                                        |             | {"timeline":{"events":[{"date":1385607134332,"types":["PAUSE"]},{"date":1386648782950,"types":["START","UNPAUSE"]}]},"ong
      oingSLAData":{"goalId":7,"startTime":1386648782950,"paused":false},"completeSLAData":[],"metricId":2,"definitionChangeDate":1385428632047,"goalsChangeDate":1385428346695,"goalTimeUpdatedDate":0} |           |
       13001 | 10614 |       10023 |           |                                                        |             | {"timeline":{"events":[{"date":1385607134332,"types":["PAUSE"]},{"date":1386648782950,"types":["UNPAUSE"]}]},"ongoingSLAD
      ata":null,"completeSLAData":[],"metricId":1,"definitionChangeDate":1385438927910,"goalsChangeDate":null,"goalTimeUpdatedDate":null}

      For a comparison a healthy issue registers a start event:

        id   | issue | customfield | parentkey |  stringvalue  | numbervalue |
           textvalue                                                                                                                                                                        | datevalue | valuetype
      -------+-------+-------------+-----------+---------------+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+-----------
       10211 | 10301 |       10105 |           |               |             | {"timeline":{"events":[{"date":1387323274676,"types":["START"]}]},"ongoingSLAData":{"goalId":5,"startTime":1387323274676,"paused":false},"completeSLAData":[],"met
      ricId":3,"definitionChangeDate":0,"goalsChangeDate":1386719592286,"goalTimeUpdatedDate":1386719592272}                                                                                |           |
       10213 | 10301 |       10103 |           |               |             | {"timeline":{"events":[{"date":1387323274676,"types":["START"]}]},"ongoingSLAData":{"goalId":2,"startTime":1387323274676,"paused":false},"completeSLAData":[],"met
      ricId":1,"definitionChangeDate":0,"goalsChangeDate":1386719592199,"goalTimeUpdatedDate":1386719592158}                                                                                |           |
       10221 | 10301 |       10104 |           |               |             | {"timeline":{"events":[{"date":1387323274593,"types":["PAUSE"]},{"date":1387323872892,"types":["START","UNPAUSE"]},{"date":1387323875803,"types":["PAUSE"]}]},"ong
      oingSLAData":{"goalId":6,"startTime":1387323872892,"paused":true},"completeSLAData":[],"metricId":2,"definitionChangeDate":1387323646719,"goalsChangeDate":0,"goalTimeUpdatedDate":0} |           |

      Currently unable to reproduce forcing a pause before a start by using the SLA settings.

      Attachments

        Activity

          People

            Unassigned Unassigned
            pgreig Paul Greig
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Backbone Issue Sync