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

jenkins-multijob-plugin - Multijob plugin throws exception when trying to get cancelled job

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Component/s: core, multijob-plugin
    • Labels:
    • Environment:
      CentOS 6.0, Jenkins ver 1.461

      java version "1.6.0_22"
      OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-1.43.1.10.6.el6_2-x86_64)
      OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

      Description

      FYI- jenkins-multijob-plugin is not a vaild component, or else I would have filed this there. Feel free to move or change component.

      Sometimes, when the jenkins multijob plugin is dispatching jobs, one will fail. If this happens, it will cancel jobs in the future loop. The loop is at MultiJobBuilder.java:92. If a job is canceled, calling future.get() on it will cause a cancellation exception.

      A good way to try and reproduce this is to create multiple jobs, including one which will auto-fail, and one which will wait for a while. An easy way to do this is to make two "Execute Shell" jobs:
      Job which auto-fails: "ls /not/a/real/directory"
      Job which waits: "sleep 20"

      Backtrace:

      FATAL: null
      java.util.concurrent.CancellationException
      at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:77)
      at com.tikal.jenkins.plugins.multijob.MultiJobBuilder.perform(MultiJobBuilder.java:102)
      at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
      at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:705)
      at hudson.model.Build$RunnerImpl.build(Build.java:178)
      at hudson.model.Build$RunnerImpl.doRun(Build.java:139)
      at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:475)
      at hudson.model.Run.run(Run.java:1434)
      at com.tikal.jenkins.plugins.multijob.MultiJobBuild.run(MultiJobBuild.java:45)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:239)

        Issue Links

          Activity

          Hide
          dannylesnik Danny Lesnik added a comment -

          I was not able to reproduce this issue I created one multiple job with 2 execute shell jobs:

          Job which auto-fails: "ls /not/a/real/directory"
          Job which waits: "sleep 120"

          when the first problem fails in the loop MultiJobBuilder.java(96)
          future.get() return result with status FAILED, Boolean failed becomes true and all other futures (jobs) are canceled without any error.

          Regards,
          Danny Lesnik.

          Show
          dannylesnik Danny Lesnik added a comment - I was not able to reproduce this issue I created one multiple job with 2 execute shell jobs: Job which auto-fails: "ls /not/a/real/directory" Job which waits: "sleep 120" when the first problem fails in the loop MultiJobBuilder.java(96) future.get() return result with status FAILED, Boolean failed becomes true and all other futures (jobs) are canceled without any error. Regards, Danny Lesnik.
          Hide
          tomas Tomas Eriksson added a comment -

          Im seeing this issue in my jenkins environment now. Im running Jenkins ver. 1.497 Jenkins Multijob plugin ver. 1.7.

          Show
          tomas Tomas Eriksson added a comment - Im seeing this issue in my jenkins environment now. Im running Jenkins ver. 1.497 Jenkins Multijob plugin ver. 1.7.
          Hide
          tomas Tomas Eriksson added a comment - - edited

          This issue exists

          Show
          tomas Tomas Eriksson added a comment - - edited This issue exists
          Hide
          alex_nick Alex Nickolaevsky added a comment -

          Can't reproduce the issue but improved the canceled future evaluation.

          Show
          alex_nick Alex Nickolaevsky added a comment - Can't reproduce the issue but improved the canceled future evaluation.
          Hide
          alex_nick Alex Nickolaevsky added a comment - - edited

          Tested on java version "1.6.0_22"
          OpenJDK Runtime Environment (IcedTea6 1.10.6)

          Show
          alex_nick Alex Nickolaevsky added a comment - - edited Tested on java version "1.6.0_22" OpenJDK Runtime Environment (IcedTea6 1.10.6)
          Hide
          beaverbeliever Russell B added a comment -

          I just ran into the same issue with Multijob. I won't bother re-opening the issue because I do not know how to reproduce this. One detail that may be relevant is that there are several jobs being triggered by the plugin that are disabled. Unlike Nate's description, none of the triggered jobs failed.

          FATAL: null
          java.util.concurrent.CancellationException
          at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:77)
          at com.tikal.jenkins.plugins.multijob.MultiJobBuilder.perform(MultiJobBuilder.java:106)
          at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
          at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
          at hudson.model.Build$BuildExecution.build(Build.java:199)
          at hudson.model.Build$BuildExecution.doRun(Build.java:160)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:586)
          at com.tikal.jenkins.plugins.multijob.MultiJobBuild$MultiJobRunnerImpl.run(MultiJobBuild.java:67)
          at hudson.model.Run.execute(Run.java:1597)
          at hudson.model.Run.run(Run.java:1543)
          at com.tikal.jenkins.plugins.multijob.MultiJobBuild.run(MultiJobBuild.java:60)
          at hudson.model.ResourceController.execute(ResourceController.java:88)
          at hudson.model.Executor.run(Executor.java:247)

          Show
          beaverbeliever Russell B added a comment - I just ran into the same issue with Multijob. I won't bother re-opening the issue because I do not know how to reproduce this. One detail that may be relevant is that there are several jobs being triggered by the plugin that are disabled. Unlike Nate's description, none of the triggered jobs failed. FATAL: null java.util.concurrent.CancellationException at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:77) at com.tikal.jenkins.plugins.multijob.MultiJobBuilder.perform(MultiJobBuilder.java:106) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804) at hudson.model.Build$BuildExecution.build(Build.java:199) at hudson.model.Build$BuildExecution.doRun(Build.java:160) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:586) at com.tikal.jenkins.plugins.multijob.MultiJobBuild$MultiJobRunnerImpl.run(MultiJobBuild.java:67) at hudson.model.Run.execute(Run.java:1597) at hudson.model.Run.run(Run.java:1543) at com.tikal.jenkins.plugins.multijob.MultiJobBuild.run(MultiJobBuild.java:60) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:247)
          Hide
          beaverbeliever Russell B added a comment -

          I found another way to reproduce this error: disable one of the downstream jobs after starting the multijob, but before the downstream job has been started.

          Show
          beaverbeliever Russell B added a comment - I found another way to reproduce this error: disable one of the downstream jobs after starting the multijob, but before the downstream job has been started.

            People

            • Assignee:
              alex_nick Alex Nickolaevsky
              Reporter:
              nseay Nate Seay
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: