Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 95315 invoked from network); 19 May 2008 23:21:20 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 May 2008 23:21:20 -0000 Received: (qmail 80093 invoked by uid 500); 19 May 2008 23:21:22 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 79871 invoked by uid 500); 19 May 2008 23:21:21 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 79860 invoked by uid 99); 19 May 2008 23:21:21 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 May 2008 16:21:21 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 May 2008 23:20:35 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id A882D234C119 for ; Mon, 19 May 2008 16:20:55 -0700 (PDT) Message-ID: <2118289123.1211239255689.JavaMail.jira@brutus> Date: Mon, 19 May 2008 16:20:55 -0700 (PDT) From: "Bryan Pendleton (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Commented: (DERBY-3219) 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 In-Reply-To: <27625071.1195607863321.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-3219?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12598131#action_12598131 ] Bryan Pendleton commented on DERBY-3219: ---------------------------------------- This code from MergeInserter.java may be relevant to the question of when the sorter decides to transition from an in-memory sort to a disk-based sort: // we want to double the sort buffer size if that will result // in the sort to use up no more than 1/2 of all the free // memory (including the sort memory) // or if GC is so effective we are now using less memory than before // or if we are using less than 1Meg of memory and the jvm is // using < 5 meg of memory (this indicates that the JVM can // afford to be more bloated ?) if (estimatedMemoryUsed < 0 || ((2*estimatedMemoryUsed) < (estimatedMemoryUsed+currentFreeMemory)/2) || (2*estimatedMemoryUsed < ExternalSortFactory.DEFAULT_MEM_USE && currentTotalMemory < (5*1024*1024))) { // ok, double the sort buffer size sortBuffer.grow(100); if (sortBuffer.insert(row) != SortBuffer.INSERT_FULL) return; } > 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.