Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-23258

SSL enabled undertow times out when a payload of 16KB or more is sent.

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • fuse-7.13.1-GA
    • fuse-7.13-GA
    • Karaf
    • False
    • None
    • False
    • % %
    • Todo
    • Very Likely

      To reproduce:

      • Enable ssl on Fuse 7.13
      • Test with a 16 KB payload by calling any arbitrary endpoint (no deployment necessary).
      user@user:/tmp$ curl -X POST https://localhost:8443   --data-binary @payload.txt      --tlsv1.2      --insecure
      
      ..After 1 minute...
      
      curl: (56) Recv failure: Connection reset by peer
      
      • This bug was reproduced on Fuse 7.13.1 but it worked fine in 7.11.1. Version 7.12 also has this issue.
      • CPU Utilization for the default I/O thread is very high:
          PID  USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
          13685 user   20   0    14.0g   1.1g  25232 R  99.9   1.8   0:40.54 XNIO-de+
      
      • This thread mostly shows up with this stack trace
      "XNIO-default I/O-3" #447 prio=5 os_prio=0 cpu=47299.61ms elapsed=334.43s tid=0x00007f54440e8800 nid=0x29268 runnable  [0x00007f546e3fd000]
         java.lang.Thread.State: RUNNABLE
      	at io.undertow.protocols.ssl.SslConduit.read(SslConduit.java:589)
      	at io.undertow.conduits.IdleTimeoutConduit.read(IdleTimeoutConduit.java:202)
      	at org.xnio.conduits.ConduitStreamSourceChannel.read(ConduitStreamSourceChannel.java:127)
      	at io.undertow.server.protocol.http.HttpReadListener.handleEventWithNoRunningRequest(HttpReadListener.java:167)
      	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:1285)
      	at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89)
      	at org.xnio.nio.WorkerThread.run(WorkerThread.java:591)
      
         Locked ownable synchronizers:
      
      
      "XNIO-default I/O-3" #447 prio=5 os_prio=0 cpu=54765.73ms elapsed=342.44s tid=0x00007f54440e8800 nid=0x29268 runnable  [0x00007f546e3fd000]
         java.lang.Thread.State: RUNNABLE
      	at io.undertow.protocols.ssl.SslConduit.doUnwrap(SslConduit.java:789)
      	- locked <0x00000006c6478e10> (a io.undertow.protocols.ssl.SslConduit)
      	at io.undertow.protocols.ssl.SslConduit.read(SslConduit.java:589)
      	at io.undertow.conduits.IdleTimeoutConduit.read(IdleTimeoutConduit.java:202)
      	at org.xnio.conduits.ConduitStreamSourceChannel.read(ConduitStreamSourceChannel.java:127)
      	at io.undertow.server.protocol.http.HttpReadListener.handleEventWithNoRunningRequest(HttpReadListener.java:167)
      	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:1285)
      	at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89)
      	at org.xnio.nio.WorkerThread.run(WorkerThread.java:591)
      
         Locked ownable synchronizers:
      
      

              Unassigned Unassigned
              rhn-support-adongre Avinash Dongre
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: