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

SimpleSSLTestCase fails on Windows

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 2.2.17.Final
    • 2.2.3.Final
    • Core
    • None
    • Hide

      On Windows machine:

      1. cd <undertow_root>
      2. mvn -Dmaven.javadoc.skip=true -Dcheckstyle.skip=true -Dmdep.analyze.skip=true -Dpmd.skip install -DskipTests
      3. cd core
      4. mvn test -Dtest=SimpleSSLTestCase.java -Dtest.level=DEBUG

      This can be reproduced on:

      • Windows Server 2012R2
      • Windows Server 2016
      • Windows Server 2019

      With various JDKs:

      • OpenJDK 11.0.10
      • OpenJDK 1.8.0.282
      • OracleJDK 11.0.10
      • OracleJDK 1.8.0_241

      These tests pass on RHEL just fine.

      Show
      On Windows machine: cd <undertow_root> mvn -Dmaven.javadoc.skip= true -Dcheckstyle.skip= true -Dmdep.analyze.skip= true -Dpmd.skip install -DskipTests cd core mvn test -Dtest=SimpleSSLTestCase.java -Dtest.level=DEBUG This can be reproduced on: Windows Server 2012R2 Windows Server 2016 Windows Server 2019 With various JDKs: OpenJDK 11.0.10 OpenJDK 1.8.0.282 OracleJDK 11.0.10 OracleJDK 1.8.0_241 These tests pass on RHEL just fine.
    • Undefined

    Description

      On Windows I can see failures of following tests in SimpleSSLTestCase:

      [ERROR]   SimpleSSLTestCase.parallelWithBlockingDispatch:138->runTest:186
      [ERROR]   SimpleSSLTestCase.parallelWithDispatch:125->runTest:186
      
      complete exceptions
      [INFO] Running io.undertow.server.ssl.SimpleSSLTestCase
      [ERROR] Tests run: 5, Failures: 2, Errors: 0, Skipped: 0, Time elapsed: 56.201 s <<< FAILURE! - in io.undertow.server.ssl.SimpleSSLTestCase
      [ERROR] parallelWithDispatch(io.undertow.server.ssl.SimpleSSLTestCase)  Time elapsed: 16.356 s  <<< FAILURE!
      java.lang.AssertionError
              at org.junit.Assert.fail(Assert.java:87)
              at org.junit.Assert.assertTrue(Assert.java:42)
              at org.junit.Assert.assertFalse(Assert.java:65)
              at org.junit.Assert.assertFalse(Assert.java:75)
              at io.undertow.server.ssl.SimpleSSLTestCase.runTest(SimpleSSLTestCase.java:186)
              at io.undertow.server.ssl.SimpleSSLTestCase.parallelWithDispatch(SimpleSSLTestCase.java:125)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
              at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
              at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
              at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
              at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
              at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
              at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
              at io.undertow.testutils.DefaultServer.runChild(DefaultServer.java:532)
              at io.undertow.testutils.DefaultServer.runChild(DefaultServer.java:105)
              at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
              at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
              at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
              at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
              at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
              at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
              at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
              at io.undertow.testutils.DefaultServer.run(DefaultServer.java:302)
              at org.junit.runners.Suite.runChild(Suite.java:128)
              at org.junit.runners.Suite.runChild(Suite.java:27)
              at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
              at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
              at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
              at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
              at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
              at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
              at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
              at org.apache.maven.surefire.junitcore.JUnitCore.run(JUnitCore.java:55)
              at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:137)
              at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:107)
              at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:83)
              at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:75)
              at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:158)
              at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:383)
              at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:344)
              at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125)
              at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:417)
      
      [ERROR] parallelWithBlockingDispatch(io.undertow.server.ssl.SimpleSSLTestCase)  Time elapsed: 32.784 s  <<< FAILURE!
      java.lang.AssertionError
              at org.junit.Assert.fail(Assert.java:87)
              at org.junit.Assert.assertTrue(Assert.java:42)
              at org.junit.Assert.assertFalse(Assert.java:65)
              at org.junit.Assert.assertFalse(Assert.java:75)
              at io.undertow.server.ssl.SimpleSSLTestCase.runTest(SimpleSSLTestCase.java:186)
              at io.undertow.server.ssl.SimpleSSLTestCase.parallelWithBlockingDispatch(SimpleSSLTestCase.java:138)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:498)
              at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
              at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
              at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
              at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
              at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
              at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
              at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
              at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
              at io.undertow.testutils.DefaultServer.runChild(DefaultServer.java:532)
              at io.undertow.testutils.DefaultServer.runChild(DefaultServer.java:105)
              at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
              at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
              at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
              at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
              at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
              at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
              at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
              at io.undertow.testutils.DefaultServer.run(DefaultServer.java:302)
              at org.junit.runners.Suite.runChild(Suite.java:128)
              at org.junit.runners.Suite.runChild(Suite.java:27)
              at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
              at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
              at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
              at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
              at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
              at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
              at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
              at org.apache.maven.surefire.junitcore.JUnitCore.run(JUnitCore.java:55)
              at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:137)
              at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:107)
              at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:83)
              at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:75)
              at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:158)
              at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:383)
              at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:344)
              at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125)
              at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:417)
      
      basic env info
      $ mvn --version
      Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
      Maven home: T:\opt\apache-maven-3.6.3
      Java version: 1.8.0_241, vendor: Oracle Corporation, runtime: C:\tools_cache\opt\windows\amd64\jdk1.8.0_last\jre
      Default locale: en_US, platform encoding: Cp1252
      OS name: "windows server 2016", version: "10.0", arch: "amd64", family: "windows"
      $ uname -a
      CYGWIN_NT-10.0  2.10.0(0.325/5/3) 2018-02-02 15:16 x86_64 Cygwin
      

      In surefire reports, I can see also following log messages:

      java.net.SocketTimeoutException: Read timed out
              at java.net.SocketInputStream.socketRead0(Native Method)
              at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
              at java.net.SocketInputStream.read(SocketInputStream.java:171)
              at java.net.SocketInputStream.read(SocketInputStream.java:141)
              at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
              at sun.security.ssl.InputRecord.read(InputRecord.java:503)
              at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)
              at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:933)
              at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
              at org.apache.http.impl.conn.LoggingInputStream.read(LoggingInputStream.java:84)
              at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
              at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
              at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
              at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
              at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
              at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
              at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
              at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157)
              at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
              at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
              at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
              at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
              at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
              at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
              at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
              at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
              at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
              at io.undertow.server.ssl.SimpleSSLTestCase$6.run(SimpleSSLTestCase.java:168)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
              at java.util.concurrent.FutureTask.run(FutureTask.java:266)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at java.lang.Thread.run(Thread.java:748)
      19:09:51,716 DEBUG (XNIO-1 I/O-2) [io.undertow.request.io] <HttpReadListener.java:160> Error reading request: java.io.IOException: An established connection was aborted by the software in your host machine
              at sun.nio.ch.SocketDispatcher.read0(Native Method)
              at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
              at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
              at sun.nio.ch.IOUtil.read(IOUtil.java:192)
              at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
              at org.xnio.nio.NioSocketConduit.read(NioSocketConduit.java:289)
              at io.undertow.protocols.ssl.SslConduit.doUnwrap(SslConduit.java:719)
              at io.undertow.protocols.ssl.SslConduit.read(SslConduit.java:583)
              at org.xnio.conduits.AbstractStreamSourceConduit.read(AbstractStreamSourceConduit.java:51)
              at io.undertow.conduits.BytesReceivedStreamSourceConduit.read(BytesReceivedStreamSourceConduit.java:67)
              at org.xnio.conduits.ConduitStreamSourceChannel.read(ConduitStreamSourceChannel.java:127)
              at io.undertow.server.protocol.http.HttpReadListener.handleEventWithNoRunningRequest(HttpReadListener.java:158)
              at io.undertow.server.protocol.http.HttpReadListener.handleEvent(HttpReadListener.java:136)
              at io.undertow.server.protocol.http.HttpReadListener.handleEvent(HttpReadListener.java:59)
              at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
              at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)
              at io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler.readReady(SslConduit.java:1213)
              at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89)
              at org.xnio.nio.WorkerThread.run(WorkerThread.java:591)
      

      Attaching full surefire-reports.

      Attachments

        Issue Links

          Activity

            People

              rhn-support-rmartinc Ricardo Martin Camarero
              jstourac@redhat.com Jan Stourac
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: