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

Race condition when rendering the executors list

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • core
    • None

      The executors list assumes that a non-idle executor will not become idle while rendering the page. If the task completes execution before the page has finished rendering a Null Pointer Exception can be thrown and served to the user.

          [JENKINS-27564] Race condition when rendering the executors list

          Code changed in jenkins
          User: Stephen Connolly
          Path:
          core/src/main/java/hudson/Functions.java
          core/src/main/java/hudson/model/AbstractCIBase.java
          core/src/main/java/hudson/model/Computer.java
          core/src/main/java/hudson/model/Executor.java
          core/src/main/java/hudson/model/Hudson.java
          core/src/main/java/hudson/model/Node.java
          core/src/main/java/hudson/model/Queue.java
          core/src/main/java/hudson/model/ResourceController.java
          core/src/main/java/hudson/slaves/AbstractCloudSlave.java
          core/src/main/java/hudson/slaves/ComputerRetentionWork.java
          core/src/main/java/hudson/slaves/NodeProvisioner.java
          core/src/main/java/hudson/slaves/RetentionStrategy.java
          core/src/main/java/hudson/slaves/SlaveComputer.java
          core/src/main/java/jenkins/model/Jenkins.java
          core/src/main/java/jenkins/model/Nodes.java
          core/src/main/java/jenkins/util/AtmostOneTaskExecutor.java
          core/src/main/resources/hudson/model/Messages.properties
          core/src/main/resources/lib/hudson/executors.jelly
          core/src/main/resources/lib/layout/layout.jelly
          http://jenkins-ci.org/commit/jenkins/92147c3597308bc05e6448ccc41409fcc7c05fd7
          Log:
          [FIXED JENKINS-27565] Refactor the Queue and Nodes to use a consistent locking strategy

          The test system I set up to verify resolution of customer(s)' issues driving this change, required
          additional changes in order to fully resolve the issues at hand. As a result I am bundling these
          changes:

          • Moves nodes to being store in separate config files outside of the main config file (improves performance) [FIXED JENKINS-27562]
          • Makes the Jenkins is loading screen not block on the extensions loading lock [FIXED JENKINS-27563]
          • Removes race condition rendering the list of executors [FIXED JENKINS-27564] [FIXED JENKINS-15355]
          • Tidy up the locks that were causing deadlocks with the once retention strategy in durable tasks [FIXED JENKINS-27476]
          • Remove any requirement from Jenkins Core to lock on the Queue when rendering the Jenkins UI [FIXED-JENKINS-27566]

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: core/src/main/java/hudson/Functions.java core/src/main/java/hudson/model/AbstractCIBase.java core/src/main/java/hudson/model/Computer.java core/src/main/java/hudson/model/Executor.java core/src/main/java/hudson/model/Hudson.java core/src/main/java/hudson/model/Node.java core/src/main/java/hudson/model/Queue.java core/src/main/java/hudson/model/ResourceController.java core/src/main/java/hudson/slaves/AbstractCloudSlave.java core/src/main/java/hudson/slaves/ComputerRetentionWork.java core/src/main/java/hudson/slaves/NodeProvisioner.java core/src/main/java/hudson/slaves/RetentionStrategy.java core/src/main/java/hudson/slaves/SlaveComputer.java core/src/main/java/jenkins/model/Jenkins.java core/src/main/java/jenkins/model/Nodes.java core/src/main/java/jenkins/util/AtmostOneTaskExecutor.java core/src/main/resources/hudson/model/Messages.properties core/src/main/resources/lib/hudson/executors.jelly core/src/main/resources/lib/layout/layout.jelly http://jenkins-ci.org/commit/jenkins/92147c3597308bc05e6448ccc41409fcc7c05fd7 Log: [FIXED JENKINS-27565] Refactor the Queue and Nodes to use a consistent locking strategy The test system I set up to verify resolution of customer(s)' issues driving this change, required additional changes in order to fully resolve the issues at hand. As a result I am bundling these changes: Moves nodes to being store in separate config files outside of the main config file (improves performance) [FIXED JENKINS-27562] Makes the Jenkins is loading screen not block on the extensions loading lock [FIXED JENKINS-27563] Removes race condition rendering the list of executors [FIXED JENKINS-27564] [FIXED JENKINS-15355] Tidy up the locks that were causing deadlocks with the once retention strategy in durable tasks [FIXED JENKINS-27476] Remove any requirement from Jenkins Core to lock on the Queue when rendering the Jenkins UI [FIXED-JENKINS-27566]

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: changelog.html http://jenkins-ci.org/commit/jenkins/46dc6850edb1d7ef52592794b15e69db7dfbed1a Log: Noting merges JENKINS-15355 JENKINS-21618 JENKINS-22941 JENKINS-25938 JENKINS-26391 JENKINS-26900 JENKINS-27476 JENKINS-27563 JENKINS-27564 JENKINS-27565 JENKINS-27566 Fixing link text for JENKINS-6167

            stephenconnolly Stephen Connolly
            stephenconnolly Stephen Connolly
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: