Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] [Jetty 8] Deadlock in JDBCSessionManager

Hi there,

We're currently experiencing a deadlock in the JDBCSessionManager in latest jetty 8.

There lots of synchronization code, which in addition to cause this deadlock, also performs really slow, since there are lots of synchronized blocks around jdbc calls.

Has this been fixed in jetty 9?

Anyone else seen this?

Stefan

--------------

Found one Java-level deadlock:
=============================
"qtp235217511-3361":
  waiting to lock monitor 0x000000000992e268 (object 0x00000000c4f29a38, a org.eclipse.jetty.server.session.JDBCSessionManager),
  which is held by "qtp235217511-136"
"qtp235217511-136":
  waiting to lock monitor 0x0000000009e027e8 (object 0x00000000c4e3aaa8, a java.util.HashSet),
  which is held by "qtp235217511-128"
"qtp235217511-128":
  waiting to lock monitor 0x000000000992e268 (object 0x00000000c4f29a38, a org.eclipse.jetty.server.session.JDBCSessionManager),
  which is held by "qtp235217511-136"

Java stack information for the threads listed above:
===================================================
"qtp235217511-3361":
        at org.eclipse.jetty.server.session.JDBCSessionManager.getSession(JDBCSessionManager.java:459)
        - waiting to lock <0x00000000c4f29a38> (a no.posten.dpost.jetty.config.DpostJDBCSessionManager)
        at org.eclipse.jetty.server.session.JDBCSessionManager.getSession(JDBCSessionManager.java:75)
        at org.eclipse.jetty.server.session.AbstractSessionManager.getHttpSession(AbstractSessionManager.java:312)
        at org.eclipse.jetty.server.session.SessionHandler.checkRequestedSessionId(SessionHandler.java:279)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:159)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:370)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:744)

"qtp235217511-136":
        at org.eclipse.jetty.server.session.JDBCSessionIdManager.removeSession(JDBCSessionIdManager.java:409)
        - waiting to lock <0x00000000c4e3aaa8> (a java.util.HashSet)
        at org.eclipse.jetty.server.session.JDBCSessionManager.loadSession(JDBCSessionManager.java:870)
        at org.eclipse.jetty.server.session.JDBCSessionManager.getSession(JDBCSessionManager.java:482)
        - locked <0x00000000c4f29a38> (a no.posten.dpost.jetty.config.DpostJDBCSessionManager)
        at org.eclipse.jetty.server.session.JDBCSessionManager.getSession(JDBCSessionManager.java:75)
        at org.eclipse.jetty.server.session.AbstractSessionManager.getHttpSession(AbstractSessionManager.java:312)
        at org.eclipse.jetty.server.session.SessionHandler.checkRequestedSessionId(SessionHandler.java:279)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:159)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:370)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
        at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:744)

"qtp235217511-128":
        at org.eclipse.jetty.server.session.JDBCSessionManager.invalidateSession(JDBCSessionManager.java:621)
        - waiting to lock <0x00000000c4f29a38> (a no.posten.dpost.jetty.config.DpostJDBCSessionManager)
        at org.eclipse.jetty.server.session.JDBCSessionIdManager.invalidateAll(JDBCSessionIdManager.java:503)
        - locked <0x00000000c4e3aaa8> (a java.util.HashSet)
        at org.eclipse.jetty.server.session.JDBCSessionManager.removeSession(JDBCSessionManager.java:729)
        at org.eclipse.jetty.server.session.AbstractSession.invalidate(AbstractSession.java:335)
       

Back to the top