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

Probable file descriptor leak during testsuite execution

XMLWordPrintable

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

      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.

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

                Created:
                Updated: