Branch: refs/heads/pull-1596
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: 5c8d5601717884e7841005e630012019a8d46b57
https://github.com/jenkinsci/jenkins/commit/5c8d5601717884e7841005e630012019a8d46b57
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2015-03-25 (Wed, 25 Mar 2015)
Changed paths:
M core/src/main/java/hudson/model/ResourceController.java
Log Message:
-----------
These data structures need not use Queue lock.
The synchronization in original code was needed to control the mutation of
#inProgress and #inUse.
In particular, one thread that's blocking in the beginning of execute()
can get notified when another thread leaves the execute() method.
ResourceList is used as immutable in this context, and so is Resource.
Commit: bdbe9c00ed16a9f689ecc1dafdab7ee70c7cf06d
https://github.com/jenkinsci/jenkins/commit/bdbe9c00ed16a9f689ecc1dafdab7ee70c7cf06d
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2015-03-25 (Wed, 25 Mar 2015)
Changed paths:
M core/src/main/java/hudson/model/Executor.java
M core/src/main/java/hudson/model/Queue.java
M core/src/main/java/hudson/slaves/ComputerRetentionWork.java
Log Message:
-----------
Signature change to defer the queue task work
Commit: ccf97ae13faf4bb886cad6920d1762a6f01fe826
https://github.com/jenkinsci/jenkins/commit/ccf97ae13faf4bb886cad6920d1762a6f01fe826
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2015-03-25 (Wed, 25 Mar 2015)
Changed paths:
M core/src/main/java/hudson/model/Queue.java
Log Message:
-----------
Return ListenableFuture to enable chaining.
If some additional computation (such as firing off other listeners) need
to happen after some computation with queue, then this would be handy.
Commit: 44e936c3aff3a6c76f3d4b2e3669028828ad8124
https://github.com/jenkinsci/jenkins/commit/44e936c3aff3a6c76f3d4b2e3669028828ad8124
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2015-03-25 (Wed, 25 Mar 2015)
Changed paths:
M core/src/main/java/hudson/slaves/NodeProvisioner.java
Log Message:
-----------
NodeProvisioner.update() runs asynchronously
so the provisioningLock needs to be held inside the async execution, not at the
point of the submission.
suggestReviewNow() doesn't have to call update() from another thread either.
Commit: 42f5984dc0d6dab12342ca5c1e56ea81f45da53e
https://github.com/jenkinsci/jenkins/commit/42f5984dc0d6dab12342ca5c1e56ea81f45da53e
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2015-03-25 (Wed, 25 Mar 2015)
Changed paths:
M core/src/main/java/hudson/model/AbstractCIBase.java
Log Message:
-----------
getComputerMap() should now move into the asynchronous code.
And ComputerListener callback can happen afterward.
Commit: aabe66b6462ad9dba44c872db39a685d9b0cfb6a
https://github.com/jenkinsci/jenkins/commit/aabe66b6462ad9dba44c872db39a685d9b0cfb6a
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2015-03-25 (Wed, 25 Mar 2015)
Changed paths:
M core/src/main/java/jenkins/model/Nodes.java
Log Message:
-----------
All queue mutation in the Nodes class appears synchronous.
And I see no way around it, mainly because of the following pattern:
1. getNodes() to obtain a list
2. do some stuff with list
3. setNodes()
Commit: 012ca55028c93f93d13dd29ba21b160257c6756a
https://github.com/jenkinsci/jenkins/commit/012ca55028c93f93d13dd29ba21b160257c6756a
Author: Kohsuke Kawaguchi <[email protected]>
Date: 2015-03-25 (Wed, 25 Mar 2015)
Changed paths:
M core/src/main/java/hudson/model/Queue.java
M core/src/main/java/jenkins/model/Nodes.java
M test/src/test/java/hudson/model/ExecutorTest.java
Log Message:
-----------
We need to wait for the side-effect of asynchronous executions to complete.
Or else if somebody wants to get Computer for a newly added Node
immediately afterward, there won't be one. This resulted in a couple of
test failures.
Exposing this from Queue so that test code can use it.
Compare:
https://github.com/jenkinsci/jenkins/compare/92147c359730^...012ca55028c9
--
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.