Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-28774

Many hudson.plugins.fitnesse.FitnesseResults objects remain in memory

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Component/s: fitnesse-plugin
    • Environment:
      Linux amd64
      Jenkins ver. 1.609.1 running as standalone
      Fitnesse plugin: 1.13 (installed through Jenkins update center)
      JDK: jdk1.6.0_29
    • Similar Issues:

      Description

      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:

      $ ./jmap -histo 4324 | sort -n -k 2 -r | grep -E 'hudson.plugins.fitnesse.FitnesseResults$'
      $
      

      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:

      $ ./jmap -histo 4324 | sort -n -k 2 -r | grep -E 'hudson.plugins.fitnesse.FitnesseResults$'
        66:          2064          99072  hudson.plugins.fitnesse.FitnesseResults
      

      After running it twice:

      $ ./jmap -histo 4324 | sort -n -k 2 -r | grep -E 'hudson.plugins.fitnesse.FitnesseResults$'
        56:          4128         198144  hudson.plugins.fitnesse.FitnesseResults
      

      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)

        Attachments

          Activity

          kirillp Kirill Popov created issue -
          kirillp Kirill Popov made changes -
          Field Original Value New Value
          Environment Jenkins ver. 1.609.1
          Fitnesse plugin: 1.13
          JDK: jdk1.6.0_29
          Linux amd64
          Jenkins ver. 1.609.1 running as standalone
          Fitnesse plugin: 1.13 (installed through Jenkins update center)
          JDK: jdk1.6.0_29
          Priority Minor [ 4 ] Major [ 3 ]
          Hide
          kirillp Kirill Popov added a comment -

          Not sure if it's related or not but just after creation of new job containing "Publish fitnesse results report" post-build step, the following message appears in console:

          Jun 5, 2015 3:38:35 PM hudson.model.Descriptor verifyNewInstance
          WARNING: Father of hudson.plugins.fitnesse.FitnesseResultsRecorder@358e3609 and its getDescriptor() points to two different instances. Probably malplaced @Extension. See http://hudson.361315.n4.nabble.com/Help-Hint-needed-Post-build-action-doesn-t-stay-activated-td2308833.html
          
          Show
          kirillp Kirill Popov added a comment - Not sure if it's related or not but just after creation of new job containing "Publish fitnesse results report" post-build step, the following message appears in console: Jun 5, 2015 3:38:35 PM hudson.model.Descriptor verifyNewInstance WARNING: Father of hudson.plugins.fitnesse.FitnesseResultsRecorder@358e3609 and its getDescriptor() points to two different instances. Probably malplaced @Extension. See http://hudson.361315.n4.nabble.com/Help-Hint-needed-Post-build-action-doesn-t-stay-activated-td2308833.html
          rtyler R. Tyler Croy made changes -
          Workflow JNJira [ 163631 ] JNJira + In-Review [ 181318 ]

            People

            • Assignee:
              Unassigned
              Reporter:
              kirillp Kirill Popov
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: