[
https://issues.apache.org/jira/browse/DERBY-4200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12766623#action_12766623
]
Mamta A. Satoor commented on DERBY-4200:
----------------------------------------
I tried the combination of gc and sleep before doing the dump of heap and that
*definitely* helped with bringing down the number of objects on vmware. I also
did not run into any OOM exceptions even after running the tests over 20times.
To me, it esems like the issue is with garbage collection thread on vmware. I
am still looking for a more updated IBM15 on vmware. Will run the tests on that
jdk to see if it helps with garbage collection better.
The new code that I tried looks as follows
public static void testDerby3316() throws Exception {
System.out.println("DERBY-3316: Multiple statement executions ");
Connection conn = ij.startJBMS();
Statement s = conn.createStatement();
s.executeUpdate("CREATE TABLE TAB (col1 varchar(32672))");
PreparedStatement ps = conn.prepareStatement("INSERT INTO TAB
VALUES(?)");
ps.setString(1,"hello");
ps.executeUpdate();
ps.setString(1,"hello");
ps.executeUpdate();
ps.close();
for (int i = 0; i < 2000; i++)
{
s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * from tab");
if (i%100 == 0) {
System.out.println("Iteration number " + i);
System.gc();
// System.runFinalization();
Thread.sleep(1000);
com.ibm.jvm.Dump.HeapDump();
com.ibm.jvm.Dump.JavaDump();
}
// drain the resultset
while (rs.next());
// With DERBY-3316, If I don't explicitly close the resultset
or
// statement, we get a leak.
//rs.close();
//s.close();
}
// close the connection to free up all the result sets that our
sloppy
// user didn't close.
conn.close();
conn = ij.startJBMS();
s = conn.createStatement();
s.executeUpdate("DROP TABLE TAB");
s.close();
conn.close();
}
> client side OutOfMemoryError running derbnetclientmats:jdbcapi/derbyStress
> --------------------------------------------------------------------------
>
> Key: DERBY-4200
> URL: https://issues.apache.org/jira/browse/DERBY-4200
> Project: Derby
> Issue Type: Bug
> Components: Network Client
> Affects Versions: 10.5.2.0
> Environment: java version "1.5.0"
> Java(TM) 2 Runtime Environment, Standard Edition (build pxi32devifx-20070806
> (SR5a))
> IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Linux x86-32 j9vmxi3223-20070426
> (JIT enabled)
> J9VM - 20070420_12448_lHdSMR
> JIT - 20070419_1806_r8
> GC - 200704_19)
> JCL - 20070725
> SUSE linux running on vmware.
> Reporter: Kathey Marsden
> Attachments: heapdump.20090428.084024.25679.phd,
> javacore.20090428.084024.25679.txt, vmware10_5_SR10HeapDump.phd,
> vmware10_5_SR7HeapDump.phd, windows10_5_HeapDump.phd
>
>
> On the nightly run for 4/27 - 10.5.1.2 - (769232), I saw client
> jdbcapi/derbystress.java run out of heap space. The test has not failed
> like this before on the same machine with the same JVM, and the one checkin
> on that day DERBY-3991 could not account for this failure.
> I will attach the javacore and heapdump. Taking a quick look at the heap
> dump, it seems to have a lot of client side Statement objects, which seems to
> be just the leak the test is checking for. Note: the test runs with 64MB
> heap. It would be interesting to run with other jvms and force a gc() and a
> heap dump at this point in the test and see if we still have a lot of
> Statement objects or if this is a specific platform/JVM issue.
> The trace at the time of failure was :
> 1XMCURTHDINFO Current Thread Details
> NULL ----------------------
> 3XMTHREADINFO "main" (TID:0x0808D300, sys_thread_t:0x0805CBC8, state:R,
> native ID:0x0000644F) prio=5
> 4XESTACKTRACE at
> org/apache/derby/client/am/Cursor.allocateCharBuffer(Bytecode PC:77(Compiled
> Code))
> 4XESTACKTRACE at
> org/apache/derby/client/net/NetStatementReply.parseSQLDTARDarray(Bytecode
> PC:77(Compiled Code))
> 4XESTACKTRACE at
> org/apache/derby/client/net/NetStatementReply.parseQRYDSC(Bytecode
> PC:10(Compiled Code))
> 4XESTACKTRACE at
> org/apache/derby/client/net/NetStatementReply.parseOpenQuery(Bytecode
> PC:104(Compiled Code))
> 4XESTACKTRACE at
> org/apache/derby/client/net/NetStatementReply.parseOPNQRYreply(Bytecode
> PC:14(Compiled Code))
> 4XESTACKTRACE at
> org/apache/derby/client/net/NetStatementReply.readOpenQuery(Bytecode
> PC:6(Compiled Code))
> 4XESTACKTRACE at
> org/apache/derby/client/net/StatementReply.readOpenQuery(Bytecode
> PC:7(Compiled Code))
> 4XESTACKTRACE at
> org/apache/derby/client/net/NetStatement.readOpenQuery_(Bytecode
> PC:11(Compiled Code))
> 4XESTACKTRACE at
> org/apache/derby/client/am/Statement.readOpenQuery(Bytecode PC:6(Compiled
> Code))
> 4XESTACKTRACE at
> org/apache/derby/client/am/Statement.flowExecute(Bytecode PC:581(Compiled
> Code))
> 4XESTACKTRACE at
> org/apache/derby/client/am/Statement.executeQueryX(Bytecode PC:3(Compiled
> Code))
> 4XESTACKTRACE at
> org/apache/derby/client/am/Statement.executeQuery(Bytecode PC:3(Compiled
> Code))
> 4XESTACKTRACE at
> org/apache/derbyTesting/functionTests/tests/jdbcapi/derbyStress.testDerby3316(derbyStress.java:156)
> 4XESTACKTRACE at
> org/apache/derbyTesting/functionTests/tests/jdbcapi/derbyStress.main(derbyStress.java:57(Compiled
> Code))
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.