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

http/2 early termination AbstractFramedStreamSinkChannel I/O thread deadlock

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 2.0.30.Final
    • None
    • Core
    • None

      Worker thread:

      "XNIO-1 task-5" #29 prio=5 os_prio=0 cpu=190.11ms elapsed=79.57s tid=0x00007fc974016800 nid=0x8f5 waiting for monitor entry  [0x00007fc9b552c000]
         java.lang.Thread.State: BLOCKED (on object monitor)
      	at io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.close(AbstractFramedStreamSinkChannel.java:531)
      	- waiting to lock <0x0000000617a06050> (a io.undertow.protocols.http2.Http2HeadersStreamSinkChannel)
      	at org.xnio.IoUtils.safeClose(IoUtils.java:134)
      	at io.undertow.server.protocol.framed.AbstractFramedChannel.queueFrame(AbstractFramedChannel.java:741)
      	at io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.queueFinalFrame(AbstractFramedStreamSinkChannel.java:265)
      	- locked <0x0000000617a06040> (a java.lang.Object)
      	at io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.shutdownWrites(AbstractFramedStreamSinkChannel.java:248)
      	- locked <0x0000000617a06040> (a java.lang.Object)
      	at org.xnio.conduits.StreamSinkChannelWrappingConduit.terminateWrites(StreamSinkChannelWrappingConduit.java:75)
      	at org.xnio.conduits.ConduitStreamSinkChannel.shutdownWrites(ConduitStreamSinkChannel.java:178)
      	at io.undertow.channels.DetachableStreamSinkChannel.shutdownWrites(DetachableStreamSinkChannel.java:79)
      	at io.undertow.io.UndertowOutputStream.close(UndertowOutputStream.java:347)
      	at io.undertow.server.HttpServerExchange$DefaultBlockingHttpExchange.close(HttpServerExchange.java:1932)
      	at io.undertow.server.HttpServerExchange.endExchange(HttpServerExchange.java:1626)
      	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:416)
      	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@11.0.5/ThreadPoolExecutor.java:1128)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@11.0.5/ThreadPoolExecutor.java:628)
      	at java.lang.Thread.run(java.base@11.0.5/Thread.java:834)
      

      I/O thread:

      "XNIO-1 I/O-8" #21 prio=5 os_prio=0 cpu=2207.61ms elapsed=82.85s tid=0x00007fca0469d800 nid=0x857 waiting for monitor entry  [0x00007fc9b633f000]
         java.lang.Thread.State: BLOCKED (on object monitor)
      	at io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.close(AbstractFramedStreamSinkChannel.java:536)
      	- waiting to lock <0x0000000617a06040> (a java.lang.Object)
      	- locked <0x0000000617a06050> (a io.undertow.protocols.http2.Http2HeadersStreamSinkChannel)
      	at org.xnio.IoUtils.safeClose(IoUtils.java:134)
      	at io.undertow.protocols.http2.Http2Channel.closeSubChannels(Http2Channel.java:650)
      	at io.undertow.server.protocol.framed.AbstractFramedChannel.close(AbstractFramedChannel.java:839)
      	at org.xnio.IoUtils.safeClose(IoUtils.java:134)
      	at io.undertow.protocols.http2.Http2Channel.handleBrokenSinkChannel(Http2Channel.java:633)
      	at io.undertow.server.protocol.framed.AbstractFramedChannel.markWritesBroken(AbstractFramedChannel.java:895)
      	at io.undertow.server.protocol.framed.AbstractFramedChannel.flushSenders(AbstractFramedChannel.java:707)
      	- locked <0x0000000617a18100> (a io.undertow.protocols.http2.Http2Channel)
      	at io.undertow.server.protocol.framed.AbstractFramedChannel.flush(AbstractFramedChannel.java:754)
      	at io.undertow.server.protocol.framed.AbstractFramedChannel.queueFrame(AbstractFramedChannel.java:747)
      	at io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.queueFinalFrame(AbstractFramedStreamSinkChannel.java:265)
      	- locked <0x0000000617a06118> (a java.lang.Object)
      	at io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.shutdownWrites(AbstractFramedStreamSinkChannel.java:248)
      	- locked <0x0000000617a06118> (a java.lang.Object)
      	at io.undertow.protocols.http2.Http2Channel.sendGoAway(Http2Channel.java:827)
      	at io.undertow.protocols.http2.Http2Channel.handleBrokenSourceChannel(Http2Channel.java:624)
      	at io.undertow.server.protocol.framed.AbstractFramedChannel.markReadsBroken(AbstractFramedChannel.java:867)
      	at io.undertow.server.protocol.framed.AbstractFramedChannel.receive(AbstractFramedChannel.java:488)
      	- locked <0x0000000617a18100> (a io.undertow.protocols.http2.Http2Channel)
      	at io.undertow.server.protocol.http2.Http2ReceiveListener.handleEvent(Http2ReceiveListener.java:118)
      	at io.undertow.server.protocol.http2.Http2ReceiveListener.handleEvent(Http2ReceiveListener.java:67)
      	at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
      	at io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.handleEvent(AbstractFramedChannel.java:966)
      	at io.undertow.server.protocol.framed.AbstractFramedChannel$FrameReadListener.handleEvent(AbstractFramedChannel.java:946)
      	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:1176)
      	at io.undertow.protocols.ssl.SslConduit$1.run(SslConduit.java:168)
      	at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:582)
      	at org.xnio.nio.WorkerThread.run(WorkerThread.java:466)
      

            flaviarnn Flavia Rainone
            carterkozak Carter Kozak
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: