[ http://issues.apache.org/jira/browse/DERBY-389?page=comments#action_12314407 ]
Daniel John Debrunner commented on DERBY-389: --------------------------------------------- Kathey, you may be correct in your guess about removeStatement. The implmentation of that method synchronizes using the statement cache object. It is not required that callers of the cache synchronize on it, all of its methods are thread safe. Indeed it may cause hangs, as the cache may release its syncrhonization (and expect it to be released) while it waits on its entries to perform actions. > With Network Server Database hangs after some time with many connections > executing prepareStatement() > ----------------------------------------------------------------------------------------------------- > > Key: DERBY-389 > URL: http://issues.apache.org/jira/browse/DERBY-389 > Project: Derby > Type: Bug > Components: JDBC, Network Server > Versions: 10.1.1.0, 10.2.0.0 > Reporter: Kathey Marsden > Assignee: Kathey Marsden > Priority: Critical > Attachments: RTINFO.txt, derby.log, javacore.20050622.135027.2491.txt, > javacore.20050623.150509.22394.txt > > Rajesh found this issue in running Network Server system tests for the 10.1 > release candidate > While running the Network Server system test with 210 clients, > the Network Server and all the clients hangs after some time. > A Ctrl+\ on the Network Server shows that upto 180 threads > waiting on the PreparedStatements to compile and comes from the > embedded engine. The following is the stack trace from the java > dump. > 3XMTHREADINFO "DRDAConnThread_181" (TID:1007C998, > sys_thread_t:85C4478, state:CW, native ID:4575ABB0) prio=5 > 4XESTACKTRACE at java.lang.Object.wait(Native Method) > 4XESTACKTRACE at > java.lang.Object.wait(Object.java(Compiled Code)) > 4XESTACKTRACE at > org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericSta > tement.java(Compiled Code)) > 4XESTACKTRACE at > org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatem > ent.java) > 4XESTACKTRACE at > org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext. > prepareInternalStatement(GenericLanguageConnectionContext.java) > 4XESTACKTRACE at > org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Embe > dPreparedStatement.java) > 4XESTACKTRACE at > org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Em > bedPreparedStatement20.java) > 4XESTACKTRACE at > org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Em > bedPreparedStatement30.java) > 4XESTACKTRACE at > org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Driver3 > 0.java) > 4XESTACKTRACE at > org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Embe > dConnection.java) > 4XESTACKTRACE at > org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Embe > dConnection.java) > 4XESTACKTRACE at > sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) > 4XESTACKTRACE at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod > AccessorImpl.java(Compiled Code)) > 4XESTACKTRACE at > java.lang.reflect.Method.invoke(Method.java(Compiled Code)) > 4XESTACKTRACE at > org.apache.derby.impl.drda.DRDAStatement.prepareStatementJDBC3(D > RDAStatement.java) > 4XESTACKTRACE at > org.apache.derby.impl.drda.DRDAStatement.prepare(DRDAStatement.j > ava) > 4XESTACKTRACE at > org.apache.derby.impl.drda.DRDAStatement.explicitPrepare(DRDASta > tement.java(Compiled Code)) > 4XESTACKTRACE at > org.apache.derby.impl.drda.DRDAConnThread.parsePRPSQLSTT(DRDACon > nThread.java(Compiled Code)) > 4XESTACKTRACE at > org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDACo > nnThread.java(Compiled Code)) > 4XESTACKTRACE at > org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.jav > a) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
