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

File Descriptor leaks when parsing Groovy Class files in Stapler (Groovy UI)

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Minor
    • Resolution: Unresolved
    • Component/s: core
    • Labels:
    • Environment:
      jenkins-2.7.3
      staple 1.243 (default for this version)
    • Similar Issues:

      Description

      It happens due to the issue similar to JENKINS-37041. JarUrlConnection is not being processed correctly.
      Potential impact is low since we are not going to replace the files on the flight

      #796 /Users/nenashev/Documents/.../test/plugins/git/WEB-INF/lib/git.jar by thread:Handling GET /jenkins/job/FooTimestamped/configure from 0:0:0:0:0:0:0:1 : RequestHandlerThread[#22] Job/configure.jelly Project/configure-entries.jelly AbstractProject/configure-common.jelly AbstractProject/configure-scm.jellytag GitSCM/DescriptorImpl/config.jelly on Mon Sep 05 15:02:56 CEST 2016
      	at java.io.FileInputStream.<init>(FileInputStream.java:139)
      	at java.io.FileInputStream.<init>(FileInputStream.java:93)
      	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
      	at sun.net.www.protocol.file.FileURLConnection.initializeHeaders(FileURLConnection.java:110)
      	at sun.net.www.protocol.file.FileURLConnection.getHeaderField(FileURLConnection.java:146)
      	at sun.net.www.protocol.jar.JarURLConnection.getHeaderField(JarURLConnection.java:228)
      	at java.net.URLConnection.getContentEncoding(URLConnection.java:523)
      	at groovy.lang.GroovyCodeSource.<init>(GroovyCodeSource.java:176)
      	at org.kohsuke.stapler.jelly.groovy.GroovyClassLoaderTearOff.parse(GroovyClassLoaderTearOff.java:89)
      	at org.kohsuke.stapler.jelly.groovy.GroovyClassTearOff.parseScript(GroovyClassTearOff.java:50)
      	at org.kohsuke.stapler.jelly.groovy.GroovyClassTearOff.parseScript(GroovyClassTearOff.java:39)
      	at org.kohsuke.stapler.AbstractTearOff.resolveScript(AbstractTearOff.java:91)
      	at org.kohsuke.stapler.jelly.JellyClassTearOff.resolveScript(JellyClassTearOff.java:85)
      	at org.kohsuke.stapler.jelly.JellyClassTearOff.resolveScript(JellyClassTearOff.java:47)
      	at org.kohsuke.stapler.AbstractTearOff.loadScript(AbstractTearOff.java:97)
      	at org.kohsuke.stapler.CachingScriptLoader$1.load(CachingScriptLoader.java:31)
      	at org.kohsuke.stapler.CachingScriptLoader$1.load(CachingScriptLoader.java:28)
      	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568)
      	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350)
      	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313)
      	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228)
      	at com.google.common.cache.LocalCache.get(LocalCache.java:3965)
      	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3969)
      	at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4829)
      	at com.google.common.cache.LocalCache$LocalManualCache.getUnchecked(LocalCache.java:4834)
      	at org.kohsuke.stapler.CachingScriptLoader.findScript(CachingScriptLoader.java:62)
      	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:112)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      
      #100 /Users/nenashev/Documents/.../test/plugins/github/WEB-INF/lib/github.jar by thread:Handling GET /jenkins/job/FooTimestamped/configure from 0:0:0:0:0:0:0:1 : RequestHandlerThread[#22] Job/configure.jelly Project/configure-entries.jelly on Mon Sep 05 15:02:56 CEST 2016
      	at java.io.FileInputStream.<init>(FileInputStream.java:139)
      	at java.io.FileInputStream.<init>(FileInputStream.java:93)
      	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
      	at sun.net.www.protocol.file.FileURLConnection.initializeHeaders(FileURLConnection.java:110)
      	at sun.net.www.protocol.file.FileURLConnection.getHeaderField(FileURLConnection.java:146)
      	at sun.net.www.protocol.jar.JarURLConnection.getHeaderField(JarURLConnection.java:228)
      	at java.net.URLConnection.getContentEncoding(URLConnection.java:523)
      	at groovy.lang.GroovyCodeSource.<init>(GroovyCodeSource.java:176)
      	at org.kohsuke.stapler.jelly.groovy.GroovyClassLoaderTearOff.parse(GroovyClassLoaderTearOff.java:89)
      	at org.kohsuke.stapler.jelly.groovy.GroovyClassTearOff.parseScript(GroovyClassTearOff.java:50)
      	at org.kohsuke.stapler.jelly.groovy.GroovyClassTearOff.parseScript(GroovyClassTearOff.java:39)
      	at org.kohsuke.stapler.AbstractTearOff.resolveScript(AbstractTearOff.java:91)
      	at org.kohsuke.stapler.jelly.JellyClassTearOff.resolveScript(JellyClassTearOff.java:85)
      	at org.kohsuke.stapler.jelly.JellyClassTearOff.resolveScript(JellyClassTearOff.java:47)
      	at org.kohsuke.stapler.AbstractTearOff.loadScript(AbstractTearOff.java:97)
      	at org.kohsuke.stapler.CachingScriptLoader$1.load(CachingScriptLoader.java:31)
      	at org.kohsuke.stapler.CachingScriptLoader$1.load(CachingScriptLoader.java:28)
      	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568)
      	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350)
      

      Repro steps:

      1. Install Jenkins 2.7.3 with default plugins (Git and GitHub)
      2. Launch instance with File Leak detector
      3. Create a FreeStyle job, open it's config page
      4. Close it
      5. Check the output of FileLeak Detector

        Attachments

          Issue Links

            Activity

            oleg_nenashev Oleg Nenashev created issue -
            oleg_nenashev Oleg Nenashev made changes -
            Field Original Value New Value
            Summary File Descriptor leaks when parsing Groovy Class files in Stapler (Grrovy UI) File Descriptor leaks when parsing Groovy Class files in Stapler (Groovy UI)
            cloudbees CloudBees Inc. made changes -
            Remote Link This issue links to "CloudBees Internal OSS-1412 (Web Link)" [ 18704 ]

              People

              • Assignee:
                Unassigned
                Reporter:
                oleg_nenashev Oleg Nenashev
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: