On Fri, Jun 7, 2019 at 11:00 AM Mark Thomas <ma...@apache.org> wrote:

> On 06/06/2019 22:51, Mark Thomas wrote:
>
> <snip/>
>
> > I haven't quite tracked down the other deadlock yet. The timing gap is
> > narrower so it is harder to capture. I have some ideas to work on
> tomorrow.
>
> This is the stack trace:
>
> Essentially, something should call notify on the NioOperationState
> instance but it never happens. I'm still trying to figure out the root
> cause.
>

This emulates a blocking write, so either there's really a problem
notifying or it is that the client is no longer reading and the wait will
eventually timeout. The state update seems properly synced and the notify
is called when the operation is considered complete, this looks ok to me.

Rémy


>
> Mark
>
>
> "https-jsse-nio-8443-exec-9" #38 daemon prio=5 os_prio=0 cpu=21.95ms
> elapsed=469.80s tid=0x00007f7f3ca34000 nid=0x1306e in Object.wait()
> [0x00007f7ee568f000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(java.base@11.0.3/Native Method)
>         - waiting on <0x00000000c748f130> (a
> org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState)
>         at
> org.apache.tomcat.util.net
> .SocketWrapperBase.vectoredOperation(SocketWrapperBase.java:1482)
>         - waiting to re-lock in wait() <0x00000000c748f130> (a
> org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper$NioOperationState)
>         at
> org.apache.tomcat.util.net
> .SocketWrapperBase.write(SocketWrapperBase.java:1403)
>         at
> org.apache.tomcat.util.net
> .SocketWrapperBase.write(SocketWrapperBase.java:1374)
>         at
>
> org.apache.coyote.http2.Http2AsyncUpgradeHandler.writeBody(Http2AsyncUpgradeHandler.java:214)
>         at
> org.apache.coyote.http2.Stream$StreamOutputBuffer.flush(Stream.java:949)
>         - locked <0x00000000c75d36a8> (a
> org.apache.coyote.http2.Stream$StreamOutputBuffer)
>         at
> org.apache.coyote.http2.Stream$StreamOutputBuffer.doWrite(Stream.java:859)
>         - locked <0x00000000c75d36a8> (a
> org.apache.coyote.http2.Stream$StreamOutputBuffer)
>         at
>
> org.apache.coyote.http2.Http2OutputBuffer.doWrite(Http2OutputBuffer.java:59)
>         at org.apache.coyote.Response.doWrite(Response.java:599)
>         at
>
> org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:329)
>         at
>
> org.apache.catalina.connector.OutputBuffer.appendByteArray(OutputBuffer.java:736)
>         at
> org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:665)
>         at
>
> org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:376)
>         at
> org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:354)
>         at
>
> org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96)
>         at
>
> org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
>         at
>
> org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:1118)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>

Reply via email to