Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] Deadlock when using jetty 8 JDBCSessionManager and Tomcat 7 JDBC Conn Pool

Hello,

We're using Jetty 8.1.3.v20120416 w/ JDBCSessionManager as our application server with Tomcat 7's JDBC Connection pool 7.0.28.  We've run this particular combination in production since at least Sept 2012.  (Database is Amazon RDS/MySQL.) (java 6 64-bit ubuntu)

This morning one Jetty instance stopped accepting requests and the problem appears to be a deadlock btw a jetty connection handler thread and the conn pool's "PoolCleaner" thread.  From jstack trace:
Deadlock Detection:

Found one Java-level deadlock:
=============================

"qtp1840392480-3740":
  waiting to lock Monitor@0x00007f4350001fd0 (Object@0x00000006c01a0e88, a com/mysql/jdbc/JDBC4Connection),
  which is held by "PoolCleaner[2009981184:1363034108768]"
"PoolCleaner[2009981184:1363034108768]":
  waiting to lock Monitor@0x00007f4350001f28 (Object@0x00000006c1ed5738, a com/mysql/jdbc/JDBC4ResultSet),
  which is held by "qtp1840392480-3740"

Once this happened all other worker threads blocked at various points within JDBCSession manager.  Obviously restarting the instance resolved the issue for now.

How does one go about diagnosing / resolving such an issue?  It's not clear to me if either component is "at fault" here...I have the full jstack output as well as a full heap dump of the java process, if that would help.  I hate to switch connection pools at this point unless there is a well-known "best" pool to use with Jetty?

Regards,
Colin

Back to the top