Uploaded image for project: 'Undertow'
  1. Undertow
  2. UNDERTOW-1704

Probable file descriptor leak during testsuite execution

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • 2.1.0.Final
    • None
    • None

    Description

      There can be seen following exception in Undertow upstream CI jobs causing failure of random tests:

      06:34:47 java.lang.NoClassDefFoundError: io/undertow/server/handlers/FixedLengthRequestTestCase$1
      06:34:47	at io.undertow.server.handlers.FixedLengthRequestTestCase.setup(FixedLengthRequestTestCase.java:61)
      06:34:47	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      06:34:47	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      06:34:47	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      06:34:47	at java.lang.reflect.Method.invoke(Method.java:498)
      06:34:47	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
      06:34:47	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      06:34:47	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
      06:34:47	at org.junit.internal.runners.statements.RunBefores.invokeMethod(RunBefores.java:33)
      06:34:47	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
      06:34:47	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
      06:34:47	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
      06:34:47 at io.undertow.testutils.DefaultServer.run(DefaultServer.java:302)
      06:34:47	at org.junit.runners.Suite.runChild(Suite.java:128)
      06:34:47	at org.junit.runners.Suite.runChild(Suite.java:27)
      06:34:47	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
      06:34:47	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
      06:34:47	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
      06:34:47	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
      06:34:47	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
      06:34:47	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
      06:34:47	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
      06:34:47	at org.apache.maven.surefire.junitcore.JUnitCore.run(JUnitCore.java:55)
      06:34:47	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:137)
      06:34:47	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:107)
      06:34:47	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:83)
      06:34:47	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:75)
      06:34:47	at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:158)
      06:34:47	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:383)
      06:34:47	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:344)
      06:34:47	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125)
      06:34:47	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:417)
      06:34:47 Caused by: java.lang.ClassNotFoundException: io.undertow.server.handlers.FixedLengthRequestTestCase$1
      06:34:47	at java.net.URLClassLoader$1.run(URLClassLoader.java:370)
      06:34:47 at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
      06:34:47	at java.security.AccessController.doPrivileged(Native Method)
      06:34:47	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
      06:34:47	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      06:34:47	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
      06:34:47	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      06:34:47	... 32 more
      06:34:47 Caused by: java.io.FileNotFoundException: /store/work/tc-work/b455211ade1ff869/core/target/test-classes/io/undertow/server/handlers/FixedLengthRequestTestCase$1.class (Too many open files)
      06:34:47	at java.io.FileInputStream.open0(Native Method)
      06:34:47	at java.io.FileInputStream.open(FileInputStream.java:195)
      06:34:47	at java.io.FileInputStream.<init>(FileInputStream.java:138)
      06:34:47	at sun.misc.URLClassPath$FileLoader$1.getInputStream(URLClassPath.java:1288)
      06:34:47	at sun.misc.Resource.cachedInputStream(Resource.java:77)
      06:34:47	at sun.misc.Resource.getByteBuffer(Resource.java:160)
      06:34:47	at java.net.URLClassLoader.defineClass(URLClassLoader.java:454)
      06:34:47	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
      06:34:47	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
      06:34:47	... 38 more
      

      This can be seen on both Linux and Windows tenants. Reason for this is that Java process reaches limit of concurrently open files. This suggest there is some file descriptor leak either in the testsuite itself or maybe in the actual work code of Undertow. We should investigate and fix this.

      Attachments

        Issue Links

          Activity

            People

              flaviarnn Flavia Rainone
              jstourac@redhat.com Jan Stourac
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: