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

OutOfMemory due to unbounded storage in OldDataMonitor

      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.

        1. 1.png
          217 kB
          Michael Niestegge
        2. 2.png
          78 kB
          Michael Niestegge

          [JENKINS-19544] OutOfMemory due to unbounded storage in OldDataMonitor

          Ramin Baradari created issue -
          Ramin Baradari made changes -
          Link New: This issue is related to JENKINS-18809 [ JENKINS-18809 ]
          Ramin Baradari made changes -
          Labels New: memory-leak
          Jesse Glick made changes -
          Labels Original: memory-leak New: memory-leak performance
          Michael Niestegge made changes -
          Attachment New: 1.png [ 25504 ]
          Attachment New: 2.png [ 25505 ]
          Jesse Glick made changes -
          Link New: This issue depends on JENKINS-20950 [ JENKINS-20950 ]
          Jesse Glick made changes -
          Description Original: 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.
          New: 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.
          Jesse Glick made changes -
          Assignee New: Jesse Glick [ jglick ]
          Jesse Glick made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          SCM/JIRA link daemon made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: In Progress [ 3 ] New: Resolved [ 5 ]
          Jesse Glick made changes -
          Labels Original: memory-leak performance New: lts-candidate memory-leak performance

            jglick Jesse Glick
            rbaradari Ramin Baradari
            Votes:
            7 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated:
              Resolved: