You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Mike Matrigali (JIRA)" <ji...@apache.org> on 2008/05/30 18:20:45 UTC

[jira] Updated: (DERBY-3625) XSDA3 error in concateTests in lang.LangHarnessJavaTest

     [ https://issues.apache.org/jira/browse/DERBY-3625?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Matrigali updated DERBY-3625:
----------------------------------


Is it still the case that no derby.log or database is left around to look at after the bug happens?  It would
be interesting to know if running the compress again also fails.  My guess is that it would and looking
at the state of the table would make it easier to understand why.

If that is not possible then somehow dumping a lot more information may help.  I would usually put
this in a SANE bracket and just dump the info to the log - but again if we can't get the log that might not
help.  The kind of info that would be interesting is a dump of the source page, dump of the dest page,
dump of the row being moved, maybe dump of the table level properties like page size, reserved space.
What I would mostly be looking at is the lengths involved rather than the data.  Seeing if there is possibly
an off by one or off by a lot.

I would probably concentrate on the StoredPage!moveRecordForCompressAtSlot() routine, catching
the "generic" exception being thrown from deeper down and print the info.  This routine try's 3 different
ways to find a page to move a row to.  In the first 2 is calls spaceForCopy() to see if there room and it
should be maintaining a latch on the page for the actual insert so unless there is a bug in latching the
bug is probably in spaceForCopy().  toString in StoredPage has code to dump the page. printing just
the row size from the routine may be enough.  Just to eliminate possibilities it might be interesting
to know which of the 3 cases the dest page came from - for instance if it came from the 3rd case then
spaceForCopy() can't be the bug.

> XSDA3 error in concateTests in lang.LangHarnessJavaTest 
> --------------------------------------------------------
>
>                 Key: DERBY-3625
>                 URL: https://issues.apache.org/jira/browse/DERBY-3625
>             Project: Derby
>          Issue Type: Bug
>          Components: Regression Test Failure
>    Affects Versions: 10.4.1.3
>         Environment: iseries, ibm1.5.:
> java version "1.5.0"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05)
> Classic VM (build 1.5, build JDK-1.5, native threads, jitc_de)
>            Reporter: Myrna van Lunteren
>
> I saw this test fail once with a similar error to DERBY-3180 and DERBY-3381.
> Unfortunately, possibly because it's an old harness test, the db and derby.log were not saved in the 'fail' directory.
> All I have is the stack trace from the output:
> 1) concateTests(org.apache.derbyTesting.functionTests.tests.lang.LangHarnessJavaTest)java.sql.SQLException: Limitation: Record cannot be updated or inserted due to lack of space on the page. Use the parameters derby.storage.pageSize and/or derby.storage.pageReservedSpace to work around this limitation.
> 	at java.lang.Throwable.<init>(Throwable.java:196)
> 	at java.lang.Exception.<init>(Exception.java:41)
> 	at java.sql.SQLException.<init>(SQLException.java:40)
> 	at org.apache.derby.impl.jdbc.EmbedSQLException.<init>(Unknown Source)
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedCallableStatement.executeStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(Unknown Source)
> 	at org.apache.derbyTesting.junit.CleanDatabaseTestSetup.compressObjects(CleanDatabaseTestSetup.java:267)
> 	at org.apache.derbyTesting.junit.CleanDatabaseTestSetup.cleanDatabase(CleanDatabaseTestSetup.java:166)
> 	at org.apache.derbyTesting.junit.CleanDatabaseTestSetup.setUp(CleanDatabaseTestSetup.java:109)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:18)
> 	at junit.extensions.TestSetup.run(TestSetup.java:23)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> Caused by: ERROR XSDA3: Limitation: Record cannot be updated or inserted due to lack of space on the page. Use the parameters derby.storage.pageSize and/or derby.storage.pageReservedSpace to work around this limitation.
> 	at java.lang.Throwable.<init>(Throwable.java:196)
> 	at java.lang.Exception.<init>(Exception.java:41)
> 	at org.apache.derby.iapi.error.StandardException.<init>(Unknown Source)
> 	at org.apache.derby.iapi.error.StandardException.<init>(Unknown Source)
> 	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.CopyRowsOperation.writeOptionalDataToBuffer(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.CopyRowsOperation.<init>(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.LoggableActions.actionCopyRows(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.BasePage.copyInto(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.BasePage.copyAndPurge(Unknown Source)
> 	at org.apache.derby.impl.store.raw.data.StoredPage.moveRecordForCompressAtSlot(Unknown Source)
> 	at org.apache.derby.impl.store.access.heap.HeapCompressScan.fetchRowsForCompress(Unknown Source)
> 	at org.apache.derby.impl.store.access.heap.HeapCompressScan.fetchNextGroup(Unknown Source)
> 	at org.apache.derby.iapi.db.OnlineCompress.defragmentRows(Unknown Source)
> 	at org.apache.derby.iapi.db.OnlineCompress.compressTable(Unknown Source)
> 	at org.apache.derby.catalog.SystemProcedures.SYSCS_INPLACE_COMPRESS_TABLE(Unknown Source)
> 	at org.apache.derby.exe.ac4388a4aax0119x3203xfc8fx0000783ef2472.g0(Unknown Source)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
> 	... 24 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.