[
https://issues.apache.org/jira/browse/DERBY-3219?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bryan Pendleton updated DERBY-3219:
-----------------------------------
Attachment: testWithMemControls.diff
Hmmm. Well, trying to use Runtime.totalMemory() in a
JUnit test did not have the behavior that I expected.
Can somebody please try taking the attached 'testWithMemControls.diff'
and apply it in your environment, and run it for me?
I tried 4 experiments:
1) java -Xmx32m junit.textui.TestRunner
org.apache.derbyTesting.functionTests.tests.lang.GroupByTest | head
2) -Xmx256m
3) -Xmx1024m
4) -Xmx2048m
And I expected to see Runtime.totalMemory() reporting results
that were roughly in line with the -Xmx values that I was setting.
Instead, I saw these results:
1) -Xmx32m: heap size is 5500928
2) -Xmx256m: heap size is 10063872
3) -Xmx1024m: heap size is 5177344
4) -Xmx2048m: heap size is 5427200
which doesn't make any sense to me at all.
This is with the Sun JDK 1.5.0_05 on RedHat Linux.
Am I misunderstanding -Xmx? or misunderstanding
Runtime.totalMemory()? Or is something in the JUnit
harness interacting with my memory specifications?
> Group by query with many aggregate columns and case statements fails with:
> ERROR XSDA7: Restore of a serializable or SQLData object of class , attempted
> to read more data than was originally stored
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-3219
> URL: https://issues.apache.org/jira/browse/DERBY-3219
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.3.1.4
> Reporter: Stan Bradbury
> Assignee: Bryan Pendleton
> Attachments: maxminPatch.diff, patchWithTest.diff, pivotView.zip,
> repro.java, testWithMemControls.diff
>
>
> using the attached database (v10.3) - " select * from pivotview " fails with
> the stack trace below. A view (pivotview_ok) created on a subset of the
> columns in pivotview executes fine. Adding one column back into pivotview_ok
> causes failures most of the time. See attached for view definitions.
> 2007-11-21 00:58:49.421 GMT Thread[main,5,main] (XID = 2734422), (SESSIONID =
> 0), (DATABASE = pivotview), (DRDAID = null), Failed Statement is: select *
> from pivotview
> ERROR XSDA7: Restore of a serializable or SQLData object of class , attempted
> to read more data than was originally stored
> at org.apache.derby.iapi.error.StandardException.newException(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.data.StreamFileContainer.fetchNext(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.data.StreamFileContainerHandle.fetchNext(Unknown
> Source)
> at org.apache.derby.impl.store.access.sort.MergeScan.mergeARow(Unknown
> Source)
> at org.apache.derby.impl.store.access.sort.MergeScan.init(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.sort.MergeSort.openSortScan(Unknown Source)
> at
> org.apache.derby.impl.store.access.RAMTransaction.openSortScan(Unknown Source)
> at
> org.apache.derby.impl.sql.execute.GroupedAggregateResultSet.loadSorter(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.GroupedAggregateResultSet.openCore(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(Unknown Source)
> at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> at org.apache.derby.impl.tools.ij.ij.executeImmediate(Unknown Source)
> at org.apache.derby.impl.tools.ij.utilMain.doCatch(Unknown Source)
> at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(Unknown Source)
> at org.apache.derby.impl.tools.ij.utilMain.go(Unknown Source)
> at org.apache.derby.impl.tools.ij.Main.go(Unknown Source)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Unknown Source)
> at org.apache.derby.impl.tools.ij.Main14.main(Unknown Source)
> at org.apache.derby.tools.ij.main(Unknown Source)
> Caused by: java.io.EOFException
> at java.io.DataInputStream.readBoolean(DataInputStream.java:248)
> at
> org.apache.derby.impl.sql.execute.MaxMinAggregator.readExternal(Unknown
> Source)
> at
> org.apache.derby.iapi.services.io.FormatIdInputStream.readObject(Unknown
> Source)
> at org.apache.derby.iapi.types.UserType.readExternal(Unknown Source)
> ... 22 more
> ============= begin nested exception, level (1) ===========
> java.io.EOFException
> at java.io.DataInputStream.readBoolean(DataInputStream.java:248)
> at
> org.apache.derby.impl.sql.execute.MaxMinAggregator.readExternal(Unknown
> Source)
> at
> org.apache.derby.iapi.services.io.FormatIdInputStream.readObject(Unknown
> Source)
> at org.apache.derby.iapi.types.UserType.readExternal(Unknown Source)
> at
> org.apache.derby.impl.store.raw.data.StreamFileContainer.fetchNext(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.data.StreamFileContainerHandle.fetchNext(Unknown
> Source)
> at org.apache.derby.impl.store.access.sort.MergeScan.mergeARow(Unknown
> Source)
> at org.apache.derby.impl.store.access.sort.MergeScan.init(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.sort.MergeSort.openSortScan(Unknown Source)
> at
> org.apache.derby.impl.store.access.RAMTransaction.openSortScan(Unknown Source)
> at
> org.apache.derby.impl.sql.execute.GroupedAggregateResultSet.loadSorter(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.GroupedAggregateResultSet.openCore(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.openCore(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.open(Unknown Source)
> at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
> at org.apache.derby.impl.tools.ij.ij.executeImmediate(Unknown Source)
> at org.apache.derby.impl.tools.ij.utilMain.doCatch(Unknown Source)
> at org.apache.derby.impl.tools.ij.utilMain.runScriptGuts(Unknown Source)
> at org.apache.derby.impl.tools.ij.utilMain.go(Unknown Source)
> at org.apache.derby.impl.tools.ij.Main.go(Unknown Source)
> at org.apache.derby.impl.tools.ij.Main.mainCore(Unknown Source)
> at org.apache.derby.impl.tools.ij.Main14.main(Unknown Source)
> at org.apache.derby.tools.ij.main(Unknown Source)
> ============= end nested exception, level (1) ===========
> Cleanup action completed
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.