Re: [jetty-users] [Jetty 8] Deadlock in JDBCSessionManager

2014-01-14 Thread Stefan Magnus Landrø
Thanks! Great!


2014/1/13 Jan Bartel j...@intalio.com

 Stefan,

 As part of some changes for the mongo session manager, the sync block
 was removed from JDBCSessionManager.invalidateSession(String) in
 jetty-9:


 https://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/diff/jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionManager.java?id=092c53b335c6ca8aa49a20698faf008d0469dbf4


 cheers
 Jan

 On 14 January 2014 00:03, Stefan Magnus Landrø stefan.lan...@gmail.com
 wrote:
  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 0x0992e268 (object 0xc4f29a38,
 a
  org.eclipse.jetty.server.session.JDBCSessionManager),
which is held by qtp235217511-136
  qtp235217511-136:
waiting to lock monitor 0x09e027e8 (object 0xc4e3aaa8,
 a
  java.util.HashSet),
which is held by qtp235217511-128
  qtp235217511-128:
waiting to lock monitor 0x0992e268 (object 0xc4f29a38,
 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 0xc4f29a38 (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 0xc4e3aaa8 (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 0xc4f29a38 (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
 
 

[jetty-users] [Jetty 8] Deadlock in JDBCSessionManager

2014-01-13 Thread Stefan Magnus Landrø
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 0x0992e268 (object 0xc4f29a38,
a org.eclipse.jetty.server.session.JDBCSessionManager),
  which is held by qtp235217511-136
qtp235217511-136:
  waiting to lock monitor 0x09e027e8 (object 0xc4e3aaa8, a
java.util.HashSet),
  which is held by qtp235217511-128
qtp235217511-128:
  waiting to lock monitor 0x0992e268 (object 0xc4f29a38,
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 0xc4f29a38 (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 0xc4e3aaa8 (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 0xc4f29a38 (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

Re: [jetty-users] [Jetty 8] Deadlock in JDBCSessionManager

2014-01-13 Thread Jan Bartel
Stefan,

As part of some changes for the mongo session manager, the sync block
was removed from JDBCSessionManager.invalidateSession(String) in
jetty-9:

https://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/diff/jetty-server/src/main/java/org/eclipse/jetty/server/session/JDBCSessionManager.java?id=092c53b335c6ca8aa49a20698faf008d0469dbf4


cheers
Jan

On 14 January 2014 00:03, Stefan Magnus Landrø stefan.lan...@gmail.com wrote:
 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 0x0992e268 (object 0xc4f29a38, a
 org.eclipse.jetty.server.session.JDBCSessionManager),
   which is held by qtp235217511-136
 qtp235217511-136:
   waiting to lock monitor 0x09e027e8 (object 0xc4e3aaa8, a
 java.util.HashSet),
   which is held by qtp235217511-128
 qtp235217511-128:
   waiting to lock monitor 0x0992e268 (object 0xc4f29a38, 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 0xc4f29a38 (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 0xc4e3aaa8 (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 0xc4f29a38 (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