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

Parameterized Trigger intermittently hangs on wait() call from AsyncFutureImpl.java:79

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major

      We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

      If we access /threadDump for our Jenkins server while a hang is in progress, we see a stack trace like the following for the hanging executor thread:

      "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
       at java.lang.Object.wait(Native Method)
       - waiting on hudson.model.queue.FutureImpl@278f4262
       at java.lang.Object.wait(Object.java:502)
       at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
       at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
       at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
       at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
       at hudson.model.Build$BuildExecution.build(Build.java:197)
       at hudson.model.Build$BuildExecution.doRun(Build.java:163)
       at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
       at hudson.model.Run.execute(Run.java:1907)
       at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
       at hudson.model.ResourceController.execute(ResourceController.java:97)
       at hudson.model.Executor.run(Executor.java:429)

      The problem seems to be a wait() call that never returns from AsyncFutureImpl.java:79 (Jenkins core) to TriggerBuilder.java:155 (Parameterized Trigger plugin).

      Bizarrely, the hanging continues even after the node running the parent has gone offline:

      The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

      The problem is very intermittent and difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):

      • Parent [Freestyle]:
        • Discard old builds → Max # of builds to keep: 30
        • Restrict where this project can be run: iibdev-x-rhel-hur-fyre-discard-87671
        • Build periodically: * * * * *
        • Build step: Trigger/call builds on other projects: Child
          • Block until the triggered projects finish their builds
          • Build on the same node
        • Build step → Execute shell:
          echo "Got past downstream"
          
      • Child [Pipeline]:
        • Do not allow the pipeline to resume if the master restarts
        • Disable Rebuilding for this job
        • Pipeline script:
          println("foobar")
          
          • Use Groovy Sandbox

          [JENKINS-66091] Parameterized Trigger intermittently hangs on wait() call from AsyncFutureImpl.java:79

          Arnie Alpenbeach created issue -
          Arnie Alpenbeach made changes -
          Description Original: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access https://hyc-iib-jenkins.swg-devops.com/threadDump while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !image-2021-07-08-11-44-34-035.png!

           The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and therefore difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):



           
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{{{* * * * *}}}}
           ** Build step: Trigger/call builds on other projects: {{Child}}

           *** Block until the triggered projects finish their builds
           *** *Build on the same node*
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:

          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()// Set this relabeling job instance's name:
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}

           *** Use Groovy Sandbox

           
          New: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and therefore difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):

           
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{{{* * * * *}}}}
           ** Build step: Trigger/call builds on other projects: {{Child}}

           *
           **
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:

          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()// Set this relabeling job instance's name:
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}
           *
           **
           *** Use Groovy Sandbox

           
          Arnie Alpenbeach made changes -
          Description Original: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and therefore difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):

           
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{{{* * * * *}}}}
           ** Build step: Trigger/call builds on other projects: {{Child}}

           *
           **
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:

          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()// Set this relabeling job instance's name:
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}
           *
           **
           *** Use Groovy Sandbox

           
          New: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and therefore difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):

           
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{{{* * * * *}}}}
           ** Build step: Trigger/call builds on other projects: {{Child}}

           *
           **
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:

          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()// Set this relabeling job instance's name:
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}
           *
           **
           *** Use Groovy Sandbox

           
          Arnie Alpenbeach made changes -
          Description Original: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and therefore difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):

           
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{{{* * * * *}}}}
           ** Build step: Trigger/call builds on other projects: {{Child}}

           *
           **
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:

          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()// Set this relabeling job instance's name:
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}
           *
           **
           *** Use Groovy Sandbox

           
          New: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{* * * * *}}
           ** Build step: Trigger/call builds on other projects: {{Child}}
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*

           *
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:

          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()// Set this relabeling job instance's name:
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}
           *
           **
           *** Use Groovy Sandbox

           
          Arnie Alpenbeach made changes -
          Description Original: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{* * * * *}}
           ** Build step: Trigger/call builds on other projects: {{Child}}
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*

           *
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:

          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()// Set this relabeling job instance's name:
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}
           *
           **
           *** Use Groovy Sandbox

           
          New: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{* * * * *}}
           ** Build step: Trigger/call builds on other projects: {{Child}}
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*

           *
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:

          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}
           *
           **
           *** Use Groovy Sandbox

           
          Arnie Alpenbeach made changes -
          Description Original: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{* * * * *}}
           ** Build step: Trigger/call builds on other projects: {{Child}}
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*

           *
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:

          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}
           *
           **
           *** Use Groovy Sandbox

           
          New: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{* * * * *}}
           ** Build step: Trigger/call builds on other projects: {{Child}}
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:
          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}
           *** Use Groovy Sandbox
          Arnie Alpenbeach made changes -
          Description Original: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{* * * * *}}
           ** Build step: Trigger/call builds on other projects: {{Child}}
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*
           ** Build step: Changes build name: {{#${BUILD_NUMBER}: Foo}}
           ** Build step: Execute shell: <trivial echo script>
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:
          {code:java}
          def node = currentBuild.getRawBuild().getExecutor().getOwner().getNode()
          def node_name = node.getNodeName()
          currentBuild.setDisplayName("Node: ${node_name}")
          {code}
           *** Use Groovy Sandbox
          New: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):

           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{* * * * *}}
           ** Build step: Trigger/call builds on other projects: {{Child}}
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*
           ** Build step → Execute shell:
          {code:bash}
          echo "Got past downstream"
          {code}
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:
          {code:java}
          println("foobar")
          {code}
           *** Use Groovy Sandbox

          Still happening with Jenkins v2.289.2.

          Arnie Alpenbeach added a comment - Still happening with Jenkins v2.289.2.
          Arnie Alpenbeach made changes -
          Priority Original: Minor [ 4 ] New: Major [ 3 ]
          Arnie Alpenbeach made changes -
          Description Original: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access [https://hyc-iib-jenkins.swg-devops.com/threadDump] while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):

           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{* * * * *}}
           ** Build step: Trigger/call builds on other projects: {{Child}}
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*
           ** Build step → Execute shell:
          {code:bash}
          echo "Got past downstream"
          {code}
           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:
          {code:java}
          println("foobar")
          {code}
           *** Use Groovy Sandbox
          New: We use the Parameterized Trigger plugin to launch a downstream Pipeline job (child) from an upstream Freestyle job (parent). The parent is configured to launch the child on the same single-executor node as the parent. Intermittently, the parent will hang waiting for the child to return control to it after the child completes.

          If we access /threadDump for our Jenkins server while a hang is in progress, we see a stack trace like the following for the hanging executor thread:
          {code:java}
          "Executor #0 for iibdev-x-rhel-hur-fyre-discard-87671 : executing ib000_Linux_PPCLE_Packager #2489" Id=101251 Group=main WAITING on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Native Method)
           - waiting on hudson.model.queue.FutureImpl@278f4262
           at java.lang.Object.wait(Object.java:502)
           at hudson.remoting.AsyncFutureImpl.get(AsyncFutureImpl.java:79)
           at hudson.plugins.parameterizedtrigger.TriggerBuilder.perform(TriggerBuilder.java:155)
           at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
           at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:803)
           at hudson.model.Build$BuildExecution.build(Build.java:197)
           at hudson.model.Build$BuildExecution.doRun(Build.java:163)
           at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
           at hudson.model.Run.execute(Run.java:1907)
           at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
           at hudson.model.ResourceController.execute(ResourceController.java:97)
           at hudson.model.Executor.run(Executor.java:429){code}
          The problem seems to be a wait() call that never returns from [AsyncFutureImpl.java:79|https://github.com/jenkinsci/remoting/blob/83d16d8a9157e00187fca9e8c67fa340b303f9c4/src/main/java/hudson/remoting/AsyncFutureImpl.java#L79] (Jenkins core) to [TriggerBuilder.java:155|https://github.com/jenkinsci/parameterized-trigger-plugin/blob/ca943ac3d89d8f7faab0cc14094fcd1f3a1aa085/src/main/java/hudson/plugins/parameterizedtrigger/TriggerBuilder.java#L155] (Parameterized Trigger plugin).

          Bizarrely, the hanging continues even after the node running the parent has gone offline:

          !hanging-continues-even-when-node-offline.png|id=cp-img!

          The problem has been reproduced on various Linux and Windows nodes: Red Hat Enterprise Linux 7.9 (x86_64, s390x, ppc64le) and Windows 2012 R2 (x86_64).

          The problem is very intermittent and difficult to reproduce - it has taken several weeks' worth of jobs running every minute of the day to reproduce the issue a handful of times. The problem has been reproduced with the following job pairing (assume all configuration options except those mentioned below left as the default):
           * Parent [Freestyle]:
           ** Discard old builds → Max # of builds to keep: {{30}}
           ** Restrict where this project can be run: {{iibdev-x-rhel-hur-fyre-discard-87671}}
           ** Build periodically: {{* * * * *}}
           ** Build step: Trigger/call builds on other projects: {{Child}}
           *** Block until the triggered projects finish their builds
           *** *Build on the same node*
           ** Build step → Execute shell:
          {code:bash}
          echo "Got past downstream"
          {code}

           * Child [Pipeline]:
           ** Do not allow the pipeline to resume if the master restarts
           ** Disable Rebuilding for this job
           ** Pipeline script:
          {code:java}
          println("foobar")
          {code}

           *** Use Groovy Sandbox

            Unassigned Unassigned
            nan Arnie Alpenbeach
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: