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

Parallel blocks in node blocks cause executors to be persisted outside of the node block

    Details

    • Similar Issues:
    • Released As:
      Pipeline Groovy 2.56

      Description

      When a parallel step is nested in a node step, the executor associated with the node appears to outlive both the parallel and node steps. This leads to the executor being rehydrated when a pipeline is restarted, even if the pipeline is outside of the node block.

      Reproduction test case:

      @Test public void shouldNotLeakExecutorsViaContextVars() {
          story.then(r -> {
              DumbSlave s = r.createOnlineSlave();
              WorkflowJob p = r.jenkins.createProject(WorkflowJob.class, "demo");
              p.setDefinition(new CpsFlowDefinition("node('" + s.getNodeName() + "') {\n" +
                      "  parallel one: {\n" +
                      "    echo '" + s.getNodeName() + "'\n" +
                      "  }\n" +
                      "}\n" +
                      "semaphore 'wait'\n", false));
              WorkflowRun b = p.scheduleBuild2(0).waitForStart();
              SemaphoreStep.waitForStart("wait/1", b);
              r.jenkins.removeNode(s);
          });
          story.then(r -> {
              WorkflowRun b = r.jenkins.getItemByFullName("demo", WorkflowJob.class).getBuildByNumber(1);
              SemaphoreStep.waitForStart("wait/1", b);
              SemaphoreStep.success("wait/1", null);
              while (b.isBuilding()) {
                  r.assertLogNotContains("Jenkins doesn’t have label", b);
                  Thread.sleep(100);
              }
              r.assertBuildStatusSuccess(b);
          });
      }
      

      This test currently fails because the pipeline waits for the 'Test' agent to become available after restarting even though we are not in a node block.

        Attachments

          Issue Links

            Activity

            Hide
            dnusbaum Devin Nusbaum added a comment -

            Fix released in Pipeline Groovy version 2.56.

            Show
            dnusbaum Devin Nusbaum added a comment - Fix released in Pipeline Groovy version 2.56.

              People

              • Assignee:
                dnusbaum Devin Nusbaum
                Reporter:
                dnusbaum Devin Nusbaum
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: