Branch: refs/heads/master
  Home:   https://github.com/jenkinsci/jenkins
  Commit: 92147c3597308bc05e6448ccc41409fcc7c05fd7
      
https://github.com/jenkinsci/jenkins/commit/92147c3597308bc05e6448ccc41409fcc7c05fd7
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-24 (Tue, 24 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/Functions.java
    M core/src/main/java/hudson/model/AbstractCIBase.java
    M core/src/main/java/hudson/model/Computer.java
    M core/src/main/java/hudson/model/Executor.java
    M core/src/main/java/hudson/model/Hudson.java
    M core/src/main/java/hudson/model/Node.java
    M core/src/main/java/hudson/model/Queue.java
    M core/src/main/java/hudson/model/ResourceController.java
    M core/src/main/java/hudson/slaves/AbstractCloudSlave.java
    M core/src/main/java/hudson/slaves/ComputerRetentionWork.java
    M core/src/main/java/hudson/slaves/NodeProvisioner.java
    M core/src/main/java/hudson/slaves/RetentionStrategy.java
    M core/src/main/java/hudson/slaves/SlaveComputer.java
    M core/src/main/java/jenkins/model/Jenkins.java
    A core/src/main/java/jenkins/model/Nodes.java
    M core/src/main/java/jenkins/util/AtmostOneTaskExecutor.java
    M core/src/main/resources/hudson/model/Messages.properties
    M core/src/main/resources/lib/hudson/executors.jelly
    M core/src/main/resources/lib/layout/layout.jelly

  Log Message:
  -----------
  [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]


  Commit: ebd0bde9fd065f75fc2deb5c2c0ee8c2fce79a63
      
https://github.com/jenkinsci/jenkins/commit/ebd0bde9fd065f75fc2deb5c2c0ee8c2fce79a63
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-24 (Tue, 24 Mar 2015)

  Changed paths:
    M core/src/main/java/jenkins/model/Nodes.java

  Log Message:
  -----------
  Ooops, forgot that the setting of nodes needs to happen while the Queue lock 
is held and the computer list needs updating afterwards


  Commit: 027b8a9b37a461e1b7c411af37ff6c976f7d4f8d
      
https://github.com/jenkinsci/jenkins/commit/027b8a9b37a461e1b7c411af37ff6c976f7d4f8d
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-24 (Tue, 24 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Queue.java
    M test/src/test/java/jenkins/model/JenkinsReloadConfigurationTest.java

  Log Message:
  -----------
  fix failing tests (hopefully)


  Commit: 2da5fb94a099bd020e58b5d572cfdf7fabe40b68
      
https://github.com/jenkinsci/jenkins/commit/2da5fb94a099bd020e58b5d572cfdf7fabe40b68
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-24 (Tue, 24 Mar 2015)

  Changed paths:
    M test/src/test/java/jenkins/model/JenkinsReloadConfigurationTest.java

  Log Message:
  -----------
  Aha! the latest failing test should now be ok


  Commit: 9cd00e40dd5ea7f4bfb7ca11b5383d13d0afd8eb
      
https://github.com/jenkinsci/jenkins/commit/9cd00e40dd5ea7f4bfb7ca11b5383d13d0afd8eb
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/Functions.java

  Log Message:
  -----------
  added `@since` tag as requested by @jglick


  Commit: b341589b5d68c07542f1516207dc1db8eb741c7e
      
https://github.com/jenkinsci/jenkins/commit/b341589b5d68c07542f1516207dc1db8eb741c7e
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/jenkins/model/Jenkins.java

  Log Message:
  -----------
  If the number of executors changes, then we need to update the computer list


  Commit: 1fe73753916646c5f7e45ea6c8eb611cc4f1e5da
      
https://github.com/jenkinsci/jenkins/commit/1fe73753916646c5f7e45ea6c8eb611cc4f1e5da
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Computer.java
    M core/src/main/java/hudson/model/Executor.java

  Log Message:
  -----------
  Document the terminatedBy methods


  Commit: 5a1999ea3035c16160e1961ffc6a61166bc6cae4
      
https://github.com/jenkinsci/jenkins/commit/5a1999ea3035c16160e1961ffc6a61166bc6cae4
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Queue.java

  Log Message:
  -----------
  Let's be extra safe with unlocking the lock...

(yes `} finally { updateSnapshot(); } } finally {` looks ugly but it reduces 
the amount of indentation changes)


  Commit: b4bb963e217a6ef0e88f6d8975e8ae4ebfe63c63
      
https://github.com/jenkinsci/jenkins/commit/b4bb963e217a6ef0e88f6d8975e8ae4ebfe63c63
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Queue.java

  Log Message:
  -----------
  Move SaveableListener notification outside of the lock


  Commit: 1844f0d93571bf175cb519cec862850b74d5da92
      
https://github.com/jenkinsci/jenkins/commit/1844f0d93571bf175cb519cec862850b74d5da92
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Queue.java

  Log Message:
  -----------
  Remove dead code while we are at it


  Commit: 215186e0f1aed1992a549ab35ab15c2cdb1f2948
      
https://github.com/jenkinsci/jenkins/commit/215186e0f1aed1992a549ab35ab15c2cdb1f2948
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Queue.java

  Log Message:
  -----------
  Grammar


  Commit: 951b07789c407aa95b5f59836fc55b3c54480429
      
https://github.com/jenkinsci/jenkins/commit/951b07789c407aa95b5f59836fc55b3c54480429
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/slaves/NodeProvisioner.java

  Log Message:
  -----------
  Document locking logic


  Commit: 639f06307650de93efce9e93b09cdccc92877bb2
      
https://github.com/jenkinsci/jenkins/commit/639f06307650de93efce9e93b09cdccc92877bb2
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/jenkins/model/Nodes.java

  Log Message:
  -----------
  Add license header


  Commit: f42e7f80ca47b2aef090660be26a035fb429b98d
      
https://github.com/jenkinsci/jenkins/commit/f42e7f80ca47b2aef090660be26a035fb429b98d
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/jenkins/model/Nodes.java

  Log Message:
  -----------
  Let's keep this private for now


  Commit: f30444c819ae7ac143a8a155a7417b3e2d4ab4ec
      
https://github.com/jenkinsci/jenkins/commit/f30444c819ae7ac143a8a155a7417b3e2d4ab4ec
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/jenkins/model/Nodes.java

  Log Message:
  -----------
  Clarify the cases where we hand-roll in the optimized subset of a save() and 
how config files are maintained


  Commit: dae0a492b55bba3b5247dcb657e38e75a27d71f5
      
https://github.com/jenkinsci/jenkins/commit/dae0a492b55bba3b5247dcb657e38e75a27d71f5
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/resources/lib/hudson/executors.jelly

  Log Message:
  -----------
  Minimise diff to reduce merge conflicts with #1610


  Commit: 2d64d160e9ade2ac16c75276b9ad7fac3f0c8758
      
https://github.com/jenkinsci/jenkins/commit/2d64d160e9ade2ac16c75276b9ad7fac3f0c8758
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Computer.java

  Log Message:
  -----------
  Missing @since and @Restricted


  Commit: c67eddf27bc8ed18be04905a15e0d7a05a20eee6
      
https://github.com/jenkinsci/jenkins/commit/c67eddf27bc8ed18be04905a15e0d7a05a20eee6
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Queue.java

  Log Message:
  -----------
  Arg! damn you copy and paste


  Commit: df160d63e2526a84c35d920f7fb36cbe95816396
      
https://github.com/jenkinsci/jenkins/commit/df160d63e2526a84c35d920f7fb36cbe95816396
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Executor.java

  Log Message:
  -----------
  Use the GuardedBy import that the Jenkins core uses by convention

- We will never mind that this is probably the wrong import to use as Jenkins 
core is consistently using the
  wrong one (If anyone asks, for a `javax` import to be correct, it should have 
a JSR that has passed through voting
  and not have a JSR that is still subject to change... OTOH one could argue 
that if the JSR 305 should ever
  become revived from its current dormant state *and* it is decided to include 
in the JRE *then* the packages
  would get moved out of `javax` and into `java` so they are not in final form 
anyway... but that pre-supposes
  that the process of standardization does not modify the annotations and by 
virtue of being in `javax`
  there will be some special case handling by some classloaders which is why 
depending on the JSR305 versions
  is, in my view, a bad plan... anyway this is moot... Jenkins core is going 
with JSR305 as it currently stands
  so we call all go down together!)


  Commit: 6a1ed2807ad245f520983469dd7014af3c82adad
      
https://github.com/jenkinsci/jenkins/commit/6a1ed2807ad245f520983469dd7014af3c82adad
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Computer.java

  Log Message:
  -----------
  Add some javadoc tags and record the time of the termination request


  Commit: 0150209edecdd3be6a0d451b6d42c7273ffff763
      
https://github.com/jenkinsci/jenkins/commit/0150209edecdd3be6a0d451b6d42c7273ffff763
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M test/src/test/groovy/hudson/model/AbstractProjectTest.groovy
    M test/src/test/java/hudson/model/ExecutorTest.java
    M test/src/test/java/hudson/model/GetEnvironmentOutsideBuildTest.java
    M test/src/test/java/hudson/model/QueueTest.java

  Log Message:
  -----------
  Remove `jenkins.setNodes(jenkins.getNodes())` style hacks to force the master 
number of executors to be updated


  Commit: 91527df490552327e2beb3e2c54bbfaa76589084
      
https://github.com/jenkinsci/jenkins/commit/91527df490552327e2beb3e2c54bbfaa76589084
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/Executor.java

  Log Message:
  -----------
  fix guarded by values


  Commit: cf9f3cfbed7200b17e49941800902e56532f5d47
      
https://github.com/jenkinsci/jenkins/commit/cf9f3cfbed7200b17e49941800902e56532f5d47
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/slaves/NodeProvisioner.java

  Log Message:
  -----------
  More fun with GuardedBy


  Commit: 89835c85acff5832631bb1dfd8e4003a8d444c02
      
https://github.com/jenkinsci/jenkins/commit/89835c85acff5832631bb1dfd8e4003a8d444c02
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/slaves/RetentionStrategy.java

  Log Message:
  -----------
  Even more fun with GuardedBy


  Commit: 8264236a07e047c202a4681ff325f0aa9ca7b632
      
https://github.com/jenkinsci/jenkins/commit/8264236a07e047c202a4681ff325f0aa9ca7b632
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/slaves/CloudRetentionStrategy.java
    M core/src/main/java/hudson/slaves/CloudSlaveRetentionStrategy.java
    M core/src/main/java/hudson/slaves/RetentionStrategy.java
    M core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java

  Log Message:
  -----------
  Update the retention strategies... the JSR 305 annotations do not seem to be 
spec'd to apply to child methods also... bold poorly spec'd annotations


  Commit: a50bdf9e6d0695d5f209bb65ff6e1bc0a4cce3a1
      
https://github.com/jenkinsci/jenkins/commit/a50bdf9e6d0695d5f209bb65ff6e1bc0a4cce3a1
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M .editorconfig
    M changelog.html
    M cli/pom.xml
    M core/pom.xml
    M core/src/main/java/hudson/Util.java
    M core/src/main/java/hudson/cli/declarative/MethodBinder.java
    M core/src/main/java/hudson/model/AbstractItem.java
    M core/src/main/java/hudson/model/Slave.java
    M core/src/main/java/hudson/model/User.java
    M core/src/main/java/hudson/security/HudsonFilter.java
    M core/src/main/java/hudson/slaves/CommandLauncher.java
    M core/src/main/java/hudson/slaves/SlaveComputer.java
    M core/src/main/java/hudson/util/FormValidation.java
    M core/src/main/java/hudson/util/ReflectionUtils.java
    M core/src/main/java/hudson/views/BuildButtonColumn.java
    M core/src/main/java/hudson/views/JobColumn.java
    M core/src/main/java/hudson/views/LastDurationColumn.java
    M core/src/main/java/hudson/views/LastFailureColumn.java
    M core/src/main/java/hudson/views/LastStableColumn.java
    M core/src/main/java/hudson/views/LastSuccessColumn.java
    M core/src/main/java/hudson/views/ListViewColumn.java
    M core/src/main/java/hudson/views/StatusColumn.java
    M core/src/main/java/hudson/views/WeatherColumn.java
    M core/src/main/java/jenkins/security/ApiTokenProperty.java
    M core/src/main/resources/hudson/PluginManager/advanced_ja.properties
    M core/src/main/resources/hudson/PluginManager/check.jelly
    M core/src/main/resources/hudson/PluginManager/check_ja.properties
    M core/src/main/resources/hudson/diagnosis/Messages_ja.properties
    M 
core/src/main/resources/hudson/diagnosis/NullIdDescriptorMonitor/message_ja.properties
    M core/src/main/resources/hudson/model/AllView/noJob_ja.properties
    M core/src/main/resources/hudson/model/Computer/index_ja.properties
    M core/src/main/resources/hudson/model/Job/buildTimeTrend_ja.properties
    M core/src/main/resources/hudson/model/Label/sidepanel_ja.properties
    M core/src/main/resources/hudson/model/Messages.properties
    M core/src/main/resources/hudson/model/Slave/help-remoteFS.html
    M core/src/main/resources/hudson/model/View/builds_pl.properties
    M 
core/src/main/resources/hudson/model/labels/LabelAtom/configure_ja.properties
    M 
core/src/main/resources/hudson/security/LegacyAuthorizationStrategy/help.html
    A core/src/main/resources/hudson/slaves/SlaveComputer/log_ja.properties
    M core/src/main/resources/hudson/tasks/ArtifactArchiver/config_ja.properties
    M 
core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries_ja.properties
    M core/src/main/resources/jenkins/model/Jenkins/login_pl.properties
    R 
core/src/main/resources/lib/hudson/project/config-upstream-pseudo-trigger_ja.properties
    M core/src/main/resources/lib/layout/pane_ja.properties
    M core/src/test/java/hudson/UtilTest.java
    M core/src/test/java/hudson/util/FormValidationTest.java
    M debian/debian/changelog
    M licenseCompleter.groovy
    M plugins/pom.xml
    M pom.xml
    M test/pom.xml
    A test/src/main/java/org/jvnet/hudson/test/BuildWatcher.java
    M test/src/main/java/org/jvnet/hudson/test/JenkinsRule.java
    M test/src/test/groovy/hudson/model/SlaveTest.groovy
    M test/src/test/java/hudson/model/QueueTest.java
    M test/src/test/java/hudson/model/UserTest.java
    A test/src/test/java/jenkins/security/Security177Test.java
    M war/pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master' into threadsafe-node-queue


  Commit: 7558a6a3840d41f7e5f928e78d02e3ce9590a815
      
https://github.com/jenkinsci/jenkins/commit/7558a6a3840d41f7e5f928e78d02e3ce9590a815
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-25 (Wed, 25 Mar 2015)

  Changed paths:
    M changelog.html
    M core/src/main/java/hudson/model/Computer.java
    M core/src/main/java/hudson/model/Executor.java
    M core/src/main/java/hudson/model/OneOffExecutor.java
    M core/src/main/java/hudson/model/Queue.java
    M core/src/main/java/hudson/model/ResourceController.java
    M core/src/main/java/hudson/model/RestartListener.java
    M core/src/main/java/hudson/model/Run.java
    M core/src/main/java/hudson/model/queue/AbstractSubTask.java
    M core/src/main/java/hudson/model/queue/WorkUnitContext.java
    M core/src/main/java/jenkins/model/Jenkins.java
    A core/src/main/java/jenkins/model/queue/AsynchronousExecution.java
    M core/src/main/java/jenkins/security/s2m/FilePathRuleConfig.java
    M core/src/main/resources/lib/hudson/buildProgressBar.jelly
    M core/src/main/resources/lib/hudson/executors.jelly
    M test/src/test/java/jenkins/security/DefaultFilePathFilterTest.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/master' into threadsafe-node-queue


  Commit: 9a7d578a0b0d9f24a65e3e8ff6e6675f475de400
      
https://github.com/jenkinsci/jenkins/commit/9a7d578a0b0d9f24a65e3e8ff6e6675f475de400
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-26 (Thu, 26 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/AbstractCIBase.java
    M core/src/main/java/hudson/model/Computer.java

  Log Message:
  -----------
  Ensure that listeners do not get notified when a computer is killed from a 
thread with the Queue lock

- We don't know what those listeners will be doing
- I'm not completely happy with having to do it this way, there are some 
theoretical paths where we end
  up re-acquiring the Queue lock in Computer.kill() but they should not be the 
normal path


  Commit: 17d6d415e678ce5a06fea4cfd3b826f0e432b496
      
https://github.com/jenkinsci/jenkins/commit/17d6d415e678ce5a06fea4cfd3b826f0e432b496
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-26 (Thu, 26 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/model/AbstractCIBase.java

  Log Message:
  -----------
  Doeth, this didn't pick up the old ones


  Commit: ecac963eaff0608accf950d90d75cff8b66bdc4c
      
https://github.com/jenkinsci/jenkins/commit/ecac963eaff0608accf950d90d75cff8b66bdc4c
  Author: Stephen Connolly <[email protected]>
  Date:   2015-03-26 (Thu, 26 Mar 2015)

  Changed paths:
    M core/src/main/java/hudson/Functions.java
    M core/src/main/java/hudson/model/AbstractCIBase.java
    M core/src/main/java/hudson/model/Computer.java
    M core/src/main/java/hudson/model/Executor.java
    M core/src/main/java/hudson/model/Hudson.java
    M core/src/main/java/hudson/model/Node.java
    M core/src/main/java/hudson/model/Queue.java
    M core/src/main/java/hudson/model/ResourceController.java
    M core/src/main/java/hudson/slaves/AbstractCloudSlave.java
    M core/src/main/java/hudson/slaves/CloudRetentionStrategy.java
    M core/src/main/java/hudson/slaves/CloudSlaveRetentionStrategy.java
    M core/src/main/java/hudson/slaves/ComputerRetentionWork.java
    M core/src/main/java/hudson/slaves/NodeProvisioner.java
    M core/src/main/java/hudson/slaves/RetentionStrategy.java
    M core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java
    M core/src/main/java/hudson/slaves/SlaveComputer.java
    M core/src/main/java/jenkins/model/Jenkins.java
    A core/src/main/java/jenkins/model/Nodes.java
    M core/src/main/java/jenkins/util/AtmostOneTaskExecutor.java
    M core/src/main/resources/hudson/model/Messages.properties
    M core/src/main/resources/lib/hudson/executors.jelly
    M core/src/main/resources/lib/layout/layout.jelly
    M test/src/test/groovy/hudson/model/AbstractProjectTest.groovy
    M test/src/test/java/hudson/model/ExecutorTest.java
    M test/src/test/java/hudson/model/GetEnvironmentOutsideBuildTest.java
    M test/src/test/java/hudson/model/QueueTest.java
    M test/src/test/java/jenkins/model/JenkinsReloadConfigurationTest.java

  Log Message:
  -----------
  Merge pull request #1596 from stephenc/threadsafe-node-queue

[JENKINS-27565] Fix threading issues with Nodes and Queue


Compare: 
https://github.com/jenkinsci/jenkins/compare/1c781526a644...ecac963eaff0

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to