tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander Shutyaev <shuty...@gmail.com>
Subject a lot of threads waiting for a ThreadPool monitor
Date Fri, 13 Jul 2012 08:34:52 GMT
Hi all!

I've encountered a problem with an embedded tomcat. The thread dump shows a
lot of threads (106 out of 722 total) are blocked waiting for a monitor
org.apache.tomcat.util.threads.ThreadPool. The locking thread is itself
blocked on a monitor (0x00007f33e30ef000) but I can't find this monitor in
the dump which is a little bit confusing. I thought of a deadlock, but
there are no deadlocks detected in the dump. My version, config and thread
stacktraces are below. Can someone help identifying the source of the
problem? Thanks in advance.

*Tomcat version*

5.5.23

*server.xml*

<Server port="8005" shutdown="SHUTDOWN">
     <GlobalNamingResources />
     <Service name="Catalina">
          <Connector port="9090" maxHttpHeaderSize="8192" maxThreads="1000"
               minSpareThreads="25" maxSpareThreads="75"
enableLookups="false"
               redirectPort="8443" acceptCount="100"
connectionTimeout="20000"
               disableUploadTimeout="true" maxPostSize="0" />
          <Engine name="Catalina" defaultHost="localhost">
               <Host name="localhost" appBase="webapps" unpackWARs="false"
                    autoDeploy="false" xmlValidation="false"
                    xmlNamespaceAware="false" />
          </Engine>
     </Service>
</Server>

*Locking thread stacktrace*

"http-9090-Processor755" daemon prio=10 tid=0x00007f33fde43000 nid=0x5ca8
waiting for monitor entry [0x00007f33e30ef000]
     java.lang.Thread.State: BLOCKED (on object monitor)
          at org.apache.tomcat.util.threads.ThreadPool.
returnController(ThreadPool.java:440)
          - locked <0x0000000685e71038> (a org.apache.tomcat.util.
threads.ThreadPool)
          at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:712)
          at java.lang.Thread.run(Thread.java:679)

*Example of a waiting thread stacktrace*

"http-9090-Processor504" daemon prio=10 tid=0x000000000432b800 nid=0x5329
waiting for monitor entry [0x00007f3400218000]
     java.lang.Thread.State: BLOCKED (on object monitor)
          at org.apache.tomcat.util.threads.ThreadPool.
returnController(ThreadPool.java:440)
          - waiting to lock <0x0000000685e71038> (a org.apache.tomcat.util.
threads.ThreadPool)
          at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:712)
          at java.lang.Thread.run(Thread.java:679)

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message