Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-53320

Job fails because JiraSCMListener times out on too many changes

    XMLWordPrintable

Details

    Description

      If there are too many changes (in our case more than 1000 commits), the JiraSCMListener times out and fails the job.

      java.util.concurrent.TimeoutException: Timeout waiting for task.
      	at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:259)
      	at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:91)
      	at com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:69)
      	at com.atlassian.jira.rest.client.internal.async.DelegatingPromise.get(DelegatingPromise.java:107)
      	at hudson.plugins.jira.JiraRestService.getIssuesFromJqlSearch(JiraRestService.java:177)
      	at hudson.plugins.jira.JiraSession.getIssuesFromJqlSearch(JiraSession.java:136)
      	at io.jenkins.blueocean.service.embedded.jira.JiraSCMListener.onChangeLogParsed(JiraSCMListener.java:43)
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun.onCheckout(WorkflowRun.java:1036)
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun.access$1400(WorkflowRun.java:143)
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun$SCMListenerImpl.onCheckout(WorkflowRun.java:1239)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:127)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:85)
      	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:75)
      	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
      	at hudson.security.ACL.impersonate(ACL.java:290)
      	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	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)
      

      Attachments

        Activity

          This is reproductible on a Jenkins 2.121.3 with BlueOcean Jira 1.7.1. There is no problem with BlueOcean Jira 1.5.1.

          alecharp Adrien Lecharpentier added a comment - This is reproductible on a Jenkins 2.121.3 with BlueOcean Jira 1.7.1 . There is no problem with BlueOcean Jira 1.5.1 .

          We're also hitting this bug, with JIRA Integration for Blue Ocean version 1.8.2.

          mbmop Mostyn Bramley-Moore added a comment - We're also hitting this bug, with JIRA Integration for Blue Ocean version 1.8.2.
          olamy Olivier Lamy added a comment - - edited

          tario  mbmop  does all commit relates to same Jira issue or is it a lot of Jira issues?

          And did you try increasing timeout?

          olamy Olivier Lamy added a comment - - edited tario   mbmop   does all commit relates to same Jira issue or is it a lot of Jira issues? And did you try increasing timeout?
          olamy Olivier Lamy added a comment -

          btw a very simple improvement is to improve the jql query construction for duplicate keys.

          ATM if 2 changelog entries have TEST-123 as Jira issue, the generated jql is 

          key in ('TEST-123', 'TEST-123') 

          which is definitely not optimum.

          olamy Olivier Lamy added a comment - btw a very simple improvement is to improve the jql query construction for duplicate keys. ATM if 2 changelog entries have TEST-123 as Jira issue, the generated jql is  key in ( 'TEST-123' , 'TEST-123' ) which is definitely not optimum.
          olamy Olivier Lamy added a comment -

          current default timeout is 10s maybe we can increase this default value? (30s)

          olamy Olivier Lamy added a comment - current default timeout is 10s maybe we can increase this default value? (30s)

          For me it was lots of different issues and I somehow missed the timeout setting.

          tario Patrick Ruckstuhl added a comment - For me it was lots of different issues and I somehow missed the timeout setting.
          olamy Olivier Lamy added a comment -

          tario no worries. Let us know if changing the timeout improves something?

          olamy Olivier Lamy added a comment - tario no worries. Let us know if changing the timeout improves something?

          I unfortunately can't test this scenario anymore. It was basically a merge on a branch which was innactive for a couple of months. My solution to work around this problem was to uninstall the blueocean plugin.

          tario Patrick Ruckstuhl added a comment - I unfortunately can't test this scenario anymore. It was basically a merge on a branch which was innactive for a couple of months. My solution to work around this problem was to uninstall the blueocean plugin.

          I will try tweaking our timeout setting, but won't be able to test this immediately.

          Still, it seems a bit strange that a display plugin should be able to break a build like this. I wonder if the build would still have failed if I didn't have blueocean installed?

          mbmop Mostyn Bramley-Moore added a comment - I will try tweaking our timeout setting, but won't be able to test this immediately. Still, it seems a bit strange that a display plugin should be able to break a build like this. I wonder if the build would still have failed if I didn't have blueocean installed?
          olamy Olivier Lamy added a comment -

          well the build should not fail which is the problem..

          olamy Olivier Lamy added a comment - well the build should not fail which is the problem..
          vivek Vivek Pandey added a comment -

          olamy Yeah timeout exception should not fail a build. That needs to be fixed.

          vivek Vivek Pandey added a comment - olamy Yeah timeout exception should not fail a build. That needs to be fixed.
          olamy Olivier Lamy added a comment -

          vivek this pr will avoid to fail the build  https://github.com/jenkinsci/blueocean-plugin/pull/1816  .

          Can be a first workaround quick fix until better changes in Jira plugin.

          But anyway we need this as timeout can happen all the time while querying Jira so we must not fail the build in this case...

          olamy Olivier Lamy added a comment - vivek this pr will avoid to fail the build   https://github.com/jenkinsci/blueocean-plugin/pull/1816   . Can be a first workaround quick fix until better changes in Jira plugin. But anyway we need this as timeout can happen all the time while querying Jira so we must not fail the build in this case...
          vivek Vivek Pandey added a comment -

          olamy AFAIK, these listeners are async process, running in separate thread, a runtime exception can fail that listener, shouldn’t fail the build thought. cc: jglick

          vivek Vivek Pandey added a comment - olamy AFAIK, these listeners are async process, running in separate thread, a runtime exception can fail that listener, shouldn’t fail the build thought. cc: jglick
          olamy Olivier Lamy added a comment -

          corresponding Jira plugin pr is here https://github.com/jenkinsci/jira-plugin/pull/166 

          olamy Olivier Lamy added a comment - corresponding Jira plugin pr is here https://github.com/jenkinsci/jira-plugin/pull/166  
          jglick Jesse Glick added a comment -

          these listeners are async process, running in separate thread

          Acc. to the stack trace the problem occurs synchronously in the step execution thread.

          jglick Jesse Glick added a comment - these listeners are async process, running in separate thread Acc. to the stack trace the problem occurs synchronously in the step execution thread.

          People

            olamy Olivier Lamy
            tario Patrick Ruckstuhl
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: