Branch: refs/heads/stable-2.32
Home: https://github.com/jenkinsci/jenkins
Commit: fcfd271ad5ad5947075052d37177249c760f6184
https://github.com/jenkinsci/jenkins/commit/fcfd271ad5ad5947075052d37177249c760f6184
Author: Oleg Nenashev <[email protected]>
Date: 2016-12-08 (Thu, 08 Dec 2016)
Changed paths:
M core/src/main/java/hudson/Launcher.java
Log Message:
-----------
[JENKINS-23271] - Prevent early deallocation of the Proc instance by GC in
ProcStarter#join() (#2635)
* [JENKINS-23271] - Prevent the prelimimary deallocation of the Proc instance
by GC
It is a hackish way, which likely prevents a preliminary deallocation of the
spawned RemoteProc instance, which we see in JENKINS-23271. Proc instance was
not actually required in the original code since we were creating and using
RemoteInvocationHandler wrapper only, and the theory discussed with @stephenc
was that object gets removed by Java8 garbage collector before we get into
join().
This fix enforces the persistency of ProcStarter#start() result by adding
logging and the enforced volatile field (maybe the last one is not really
required, but JIT compiler in Java implementations may be smart enough to skip
unused loggers)
This is a pretty old fix from August, which has been soak tested on my instance
for several weeks (mid-August => Jenkins World). On the reference instance
(just a small Jenkins instance with 4 agents and very frequent builds with
CommandInterpreter steps) I saw 2 failures over the period. On the fixed
instance - 0. It does not proof anything, but at least the fix was soak tested
a bit
* [JENKINS-23271] - Get rid of the procHolderForJoin field
* [JENKINS-23271] - Also put the check into the finally statement as @stephenc
proposed
* Remove assert
(cherry picked from commit fd6c6aff929be9818f4eb4b84ed6b4593356853f)
Commit: 5500e5c00bc19e6c421c9aaa88f6dbb57c666db3
https://github.com/jenkinsci/jenkins/commit/5500e5c00bc19e6c421c9aaa88f6dbb57c666db3
Author: Oleg Nenashev <[email protected]>
Date: 2016-12-08 (Thu, 08 Dec 2016)
Changed paths:
M core/src/main/java/hudson/Launcher.java
M core/src/main/java/hudson/Proc.java
Log Message:
-----------
[JENKINS-23271] - Process statuses of Remote process join() operations
directly inside methods (#2653)
* [JENKINS-23271] - Process statuses of Remote process join() operations
directly inside methods
* [JENKINS-23271] - Also prevent the issue when the kill() command is the last
call in the usage sequence
(cherry picked from commit 29893354a52efac20efcb4e0e91723f3bd889059)
Compare:
https://github.com/jenkinsci/jenkins/compare/dacbe03e0d4e...5500e5c00bc1
--
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.