-
Bug
-
Resolution: Fixed
-
Critical
-
Jenkins 2.19-stable with a single commit that bumps groovy 2.4.8
workflow-cps-plugin 2.23
The issue depicted in blocked_threads.png appeared in our production server.
(it results on a broken state that we fixed by rebooting the server)
The result of the first investigation is the following:
cleanUpGlobalClassSet
https://github.com/jenkinsci/workflow-cps-plugin/blob/master/src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowExecution.java#L1037
seems to have compatibility issues with the memory leak fix implemented in groovy 2.4.8
https://github.com/apache/groovy/pull/219/commits/f7c688e101af77170448cf0be9103c4e6dac3f74
It seems that gradle had a similar issue, that was fixed by the following commit in groovy 2.4.8
https://github.com/apache/groovy/commit/82c9d20a160c7e4f59630f163a68df82f5e0eba4
- blocks
-
JENKINS-33358 Groovy and PermGen memory leak
-
- Resolved
-
- links to
Code changed in jenkins
User: Jesse Glick
Path:
Jenkinsfile
pom.xml
src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowExecution.java
http://jenkins-ci.org/commit/workflow-cps-plugin/1a73b74a907c47e06d103875c89f5c7efc8890ab
Log:
[FIXED JENKINS-42189] In Groovy 2.4.8+, ClassInfo.klazz is replaced by .classRef.
cleanUpGlobalClassValue needs to walk through those (not just Sentinel.class over and over);
and cleanUpGlobalClassSet is no longer relevant since classRef is weak.