Uploaded image for project: 'Puppet Server'
  1. Puppet Server
  2. SERVER-1792

JRuby9k ClassLoader deleteOnExit / temp file leak

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: SERVER 5.0.0
    • Component/s: None
    • Labels:
      None
    • Release Notes:
      Not Needed
    • Release Notes Summary:
      We haven't released versions of Puppet Server with this leak, fortunately, so we shouldn't need to document it in the release notes.
    • QA Risk Assessment:
      Needs Assessment

      Description

      After each ScriptingContainer instance is recycled in JRuby 9k (at least as of 9.1.8.0), at least 5 additional strings are added to the JVM's DeleteOnExitHook hash - one for each of the temp jars JRuby's ClassLoader creates a copy of which should be deleted when the Java process is terminated. Over time, this could theoretically OOM a Puppet Server since the hash could grow without bounds when a user has set the max-requests-per-instance jruby setting to anything other than 0.

      I submitted a PR to the JRuby project with an attempt to address this issue. This ticket just serves to track the upstream JRuby project work.

      This ticket is also related to the stdlib file descriptor leak described in SERVER-1777.

        Attachments

          Issue Links

            Activity

              jsd-sla-details-panel

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  jeremy.barlow Jeremy Barlow
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: