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

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


I believe there is another bug in this code, in the final try at finding a page 
to move the row to we try and
get an empty page.  The assumption was that the copy would always work to an 
empty page, but for the same reason as described above the copy of the row to 
an empty page
may not work if the new page is actually a reclaimed page which in the past has 
used up record id's.  So
the same spaceForCopy check should be added to it as the above 2, and if it 
does not work just set
the candidate page to null and fall through.

> 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
>         Attachments: derby_log_wdebug.zip, derby_log_wdebug2.zip, 
> derbylog.zip, wombat.zip
>
>
> 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.

Reply via email to