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: