Status: Open (View Workflow)
Jenkins ver. 1.609.1 running as standalone
Fitnesse plugin: 1.13 (installed through Jenkins update center)
It seems that having "Publish fitnesse results report" post-build step in a job makes Fitnesse plugin produce huge amounts of hudson.plugins.fitnesse.FitnesseResults objects which have links and therefore are not being collected by GC.
After an empty Jenkins server startup there are no such objects:
After I create a job that fetches a ready XML file with Fitnesse results (quite a big one: 2201 pages: 41 wrong or with exceptions, 0 ignored) and has a "Publish fitnesse results report" post-build step and run this job once, I get:
After running it twice:
And so on. Every other run adds nearly 2000 such objects.
Connecting to the process with jconsole and forcing GC run does not change the number of these objects at all. This is why I suggest all these objects still have valid links to them.
So, on large Jenkins installations with many jobs that analyze fitnesse results this leads to almost full heap memory consumption which in turn leads to frequent GC runs which results in Jenkins being unresponsive (we used to have 3sec GC runs every 3sec)