Status: Resolved (View Workflow)
The data map in hudson.diagnosis.OldDataMonitor keeps growing on my machine.
I have removed an old plugin, which has stored it's settings in all project files.
Now, on each load/access of a project a new FreeStyleProject object seems to be created and each time the old data is found and the project (as it is a Saveable) is stored as containing old data in the data map of the OldDataMonitor instance.
One would think that this should not be a problem with only 20 projects but FreeStyleProject does not implement equals and hashCode and therefore every single project object is kept around in this map.
After a week since the last restart it has accumulated a total of over 200k map entries totaling a whopping 1GB of heap memory.
I would love to remove this old data but because of bug
JENKINS-18809 I can't even do that. I will remove it by hand.
- depends on
JENKINS-24358 Deadlock in OldDataMonitor
JENKINS-20950 NPE during Discard Old Data
- is related to
JENKINS-18809 Discard Unreadable Data results in an NPE
JENKINS-22261 Link for "Manage Old Data" fails with a "Content Encoding Error" error in the browser.
Integrated in jenkins_main_trunk #3248
JENKINS-19544 Whether or not we manage to save an object with old data, be sure to remove it from the list, and continue with other objects. (Revision 8508fc365ac9faa4fa6ccee116e820c0455f0988)
[FIXED JENKINS-19544] When OldDataMonitor is reported a Run, just remember the ID rather than holding a strong reference. (Revision 681a8ff3070736610f338972ba433379723346fb)
Result = SUCCESS
Jesse Glick : 8508fc365ac9faa4fa6ccee116e820c0455f0988
Jesse Glick : 681a8ff3070736610f338972ba433379723346fb
Code changed in jenkins
User: Jesse Glick
[FIXED JENKINS-19544] When OldDataMonitor is reported a Run, just remember the ID rather than holding a strong reference.