Hello again,

Sorry for another question, I'm fighting issues on multiple fronts.

For Tomcat 8.0.24 and jre 1.8.0_60.

I need a little insight on what is happening inside Tomcat so I can
hopefully understand how I am occasionally getting thread deadlocks.

This is thread #1, the code is trying to close an AsyncContext but it
is waiting on a Tomcat thread.

Name: http-apr-8443-exec-27576
State: BLOCKED on
org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper@d0ec341 owned
by: http-apr-8443-exec-24603
Total blocked: 1  Total waited: 73

Stack trace:
org.apache.tomcat.util.net.AprEndpoint.processSocket(AprEndpoint.java:964)
org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:850)
org.apache.coyote.Request.action(Request.java:378)
org.apache.catalina.core.AsyncContextImpl.complete(AsyncContextImpl.java:86)
MyServlet._completeAsync(MyServlet.java:478)



This is thread #2, it came in through doGet, and is locked waiting for
thread #1 to finish

MyServlet.doGet(MyServlet.java:251)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2503)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2492)
   - locked org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper@d0ec341
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)


My question is, what is AprEndpoint$AprSocketWrapper really locking here?

Thanks (Again)!

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to