Skip to content

[JENKINS-25938] Lock an Executor without creating a Thread #23659

Closed

Description

@jenkins-infra-bot

Currently WorkflowRun.waitForCompletion spins on a thread just so it can hold a (flyweight) Executor open. Similarly, ExecutorStepExecution.PlaceholderTask spins just to hold a (heavyweight) Executor open. These are wasteful. There should be an optional Task or Executable interface that can run asynchronously, without literally consuming a native Thread for each one.


Originally reported by jglick, imported from: Lock an Executor without creating a Thread
  • assignee: jglick
  • status: Resolved
  • priority: Major
  • component(s): core
  • label(s): api, executor, performance, pipeline, threads
  • resolution: Fixed
  • resolved: 2015-03-25T22:33:45+00:00
  • votes: 0
  • watchers: 3
  • imported: 2025-11-24
Raw content of original issue

Currently WorkflowRun.waitForCompletion spins on a thread just so it can hold a (flyweight) Executor open. Similarly, ExecutorStepExecution.PlaceholderTask spins just to hold a (heavyweight) Executor open. These are wasteful. There should be an optional Task or Executable interface that can run asynchronously, without literally consuming a native Thread for each one.

Activity

  1. jenkins-infra-bot commented on Dec 5, 2014

    @jenkins-infra-bot
    Author
    • Remote link associated with this issue:

  2. jenkins-infra-bot commented on Mar 25, 2015

    @jenkins-infra-bot
    Author
    scm_issue_link:
    • Original comment link
    • Raw content of original comment:

      Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/model/AbstractBuild.java core/src/main/java/hudson/model/Computer.java core/src/main/java/hudson/model/Executor.java core/src/main/java/hudson/model/OneOffExecutor.java core/src/main/java/hudson/model/Queue.java core/src/main/java/hudson/model/ResourceController.java core/src/main/java/hudson/model/queue/WorkUnitContext.java core/src/main/java/jenkins/model/queue/Executable2.java http://jenkins-ci.org/commit/jenkins/46a900f4cb468853c5dca844d258b5b862c3a8bf Log: JENKINS-25938 Introduced AsynchronousExecutable.

    Code changed in jenkins
    User: Jesse Glick
    Path:
    core/src/main/java/hudson/model/AbstractBuild.java
    core/src/main/java/hudson/model/Computer.java
    core/src/main/java/hudson/model/Executor.java
    core/src/main/java/hudson/model/OneOffExecutor.java
    core/src/main/java/hudson/model/Queue.java
    core/src/main/java/hudson/model/ResourceController.java
    core/src/main/java/hudson/model/queue/WorkUnitContext.java
    core/src/main/java/jenkins/model/queue/Executable2.java
    http://jenkins-ci.org/commit/jenkins/46a900f4cb468853c5dca844d258b5b862c3a8bf
    Log:
    JENKINS-25938 Introduced AsynchronousExecutable.

  3. jenkins-infra-bot commented on Mar 25, 2015

    @jenkins-infra-bot
    Author
    dogfood:
    • Original comment link
    • Raw content of original comment:

      Integrated in jenkins_main_trunk #4029 JENKINS-25938 Introduced AsynchronousExecutable. (Revision 46a900f4cb468853c5dca844d258b5b862c3a8bf)

      Result = SUCCESS jesse glick : 46a900f4cb468853c5dca844d258b5b862c3a8bf Files :

      • core/src/main/java/hudson/model/OneOffExecutor.java
      • core/src/main/java/hudson/model/Queue.java
      • core/src/main/java/hudson/model/Executor.java
      • core/src/main/java/hudson/model/AbstractBuild.java
      • core/src/main/java/hudson/model/Computer.java
      • core/src/main/java/jenkins/model/queue/Executable2.java
      • core/src/main/java/hudson/model/ResourceController.java
      • core/src/main/java/hudson/model/queue/WorkUnitContext.java

    Integrated in jenkins_main_trunk #4029
    JENKINS-25938 Introduced AsynchronousExecutable. (Revision 46a900f)

    Result = SUCCESS
    jesse glick : 46a900f4cb468853c5dca844d258b5b862c3a8bf
    Files :

    • core/src/main/java/hudson/model/OneOffExecutor.java
    • core/src/main/java/hudson/model/Queue.java
    • core/src/main/java/hudson/model/Executor.java
    • core/src/main/java/hudson/model/AbstractBuild.java
    • core/src/main/java/hudson/model/Computer.java
    • core/src/main/java/jenkins/model/queue/Executable2.java
    • core/src/main/java/hudson/model/ResourceController.java
    • core/src/main/java/hudson/model/queue/WorkUnitContext.java
  4. jenkins-infra-bot commented on Mar 27, 2015

    @jenkins-infra-bot
    Author
  5. jenkins-infra-bot commented on Apr 30, 2015

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Jesse Glick
    Path:
    aggregator/src/test/java/org/jenkinsci/plugins/workflow/WorkflowTest.java
    job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java
    support/src/main/java/org/jenkinsci/plugins/workflow/support/steps/ExecutorStepExecution.java
    http://jenkins-ci.org/commit/workflow-plugin/ee2ca390e73004b411e133c1832b88e977b47f28
    Log:
    JENKINS-25938 Starting to use AsynchronousExecutable.

  6. jenkins-infra-bot commented on Apr 5, 2016

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Jesse Glick
    Path:
    aggregator/src/test/java/org/jenkinsci/plugins/workflow/WorkflowTest.java
    http://jenkins-ci.org/commit/workflow-cps-plugin/89032eb815863a7008a21ad6d545e33eb77160cc
    Log:
    JENKINS-25938 Starting to use AsynchronousExecutable.
    Originally-Committed-As: ee2ca390e73004b411e133c1832b88e977b47f28

  7. jenkins-infra-bot commented on Apr 5, 2016

    @jenkins-infra-bot
    Author
    scm_issue_link:

    Code changed in jenkins
    User: Jesse Glick
    Path:
    job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java
    http://jenkins-ci.org/commit/workflow-job-plugin/149188bc42f2cab01ea9efc54774dfdfb213f068
    Log:
    JENKINS-25938 Starting to use AsynchronousExecutable.
    Originally-Committed-As: ee2ca390e73004b411e133c1832b88e977b47f28

  8. jenkins-infra-bot commented on Nov 24, 2025

    @jenkins-infra-bot
    Author

    [Original is_duplicated_by from Jira: JENKINS-26098]

  9. jenkins-infra-bot commented on Nov 24, 2025

    @jenkins-infra-bot
    Author

    [Original relates_to from Jira: JENKINS-22941]

  10. jenkins-infra-bot commented on Nov 24, 2025

    @jenkins-infra-bot
    Author

    [Original relates_to from Jira: JENKINS-26900]

  11. jenkins-infra-bot commented on Nov 24, 2025

    @jenkins-infra-bot
    Author

    [Original depends_on from Jira: JENKINS-34450]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions