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 > >