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

Myrna van Lunteren closed DERBY-3180.
-------------------------------------


> error XSDA3 when test is executing SYSCS_INPLACE_COMPRESS_TABLE in specific 
> situation
> -------------------------------------------------------------------------------------
>
>                 Key: DERBY-3180
>                 URL: https://issues.apache.org/jira/browse/DERBY-3180
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.4.1.3
>            Reporter: Myrna van Lunteren
>            Assignee: Mike Matrigali
>             Fix For: 10.5.1.1
>
>         Attachments: DatabaseMetaDataTest.java, derby.log
>
>
> While attempting to add testing for getBestRowIdentifier from tests 
> jdbcapi/bestrowidentifier.sql and jdbcapi.metadata.java to 
> jdbcapi.DatabaseMetaDataTest, I ran into an occurrence of 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 - but only on 
> running the test a second time without removing wombat.
> I've tried various approaches in an attempt to narrowing down and make a 
> better repro, but was not successful. 
> I tried saving the database after running the first time, then executing call 
> SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE('SYS', 'SYSDEPENDS', 1, 1, 1) on the 
> database using ij; I tried to change the test to use embeddedSuite instead of 
> defaultSuite, I tried to removing all other tests than the one I added, but 
> nothing repro-ed the issue. I also found that by removing the last table I 
> added to the test fixture into a separate test fixture,  the problem went 
> away. That is what is currently checked in...
> So, I'll attach the DatabaseMetaDataTest.java that reproduced the problem as 
> well as derby.log when the error occurs.
> The online/inplace compress that is being executed (multiple times) is done 
> in the CleanDatabaseSetup.java, and it's on SYS.SYSDEPENDS.
> This is the stack trace I get when running the test a second time:
> 1) DatabaseMetaDataTest:embeddedjava.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 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
>       at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:202)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:391)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
>       at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:1574)
>       at 
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
>       at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1315)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1650)
>       at 
> org.apache.derby.impl.jdbc.EmbedCallableStatement.executeStatement(EmbedCallableStatement.java:116)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(EmbedPreparedStatement.java:1305)
>       at 
> org.apache.derbyTesting.junit.CleanDatabaseTestSetup.compressObjects(CleanDatabaseTestSetup.java:232)
>       at 
> org.apache.derbyTesting.junit.CleanDatabaseTestSetup.cleanDatabase(CleanDatabaseTestSetup.java:130)
>       at 
> org.apache.derbyTesting.junit.CleanDatabaseTestSetup.setUp(CleanDatabaseTestSetup.java:73)
>       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 
> org.apache.derby.iapi.error.StandardException.newException(StandardException.java:280)
>       at 
> org.apache.derby.impl.store.raw.data.CopyRowsOperation.writeOptionalDataToBuffer(CopyRowsOperation.java:287)
>       at 
> org.apache.derby.impl.store.raw.data.CopyRowsOperation.<init>(CopyRowsOperation.java:98)
>       at 
> org.apache.derby.impl.store.raw.data.LoggableActions.actionCopyRows(LoggableActions.java:159)
>       at 
> org.apache.derby.impl.store.raw.data.BasePage.copyInto(BasePage.java:2045)
>       at 
> org.apache.derby.impl.store.raw.data.BasePage.copyAndPurge(BasePage.java:1300)
>       at 
> org.apache.derby.impl.store.raw.data.StoredPage.moveRecordForCompressAtSlot(StoredPage.java:6920)
>       at 
> org.apache.derby.impl.store.access.heap.HeapCompressScan.fetchRowsForCompress(HeapCompressScan.java:230)
>       at 
> org.apache.derby.impl.store.access.heap.HeapCompressScan.fetchNextGroup(HeapCompressScan.java:85)
>       at 
> org.apache.derby.iapi.db.OnlineCompress.defragmentRows(OnlineCompress.java:375)
>       at 
> org.apache.derby.iapi.db.OnlineCompress.compressTable(OnlineCompress.java:219)
>       at 
> org.apache.derby.catalog.SystemProcedures.SYSCS_INPLACE_COMPRESS_TABLE(SystemProcedures.java:942)
>       at 
> org.apache.derby.exe.ac601a400fx0116x16f0x0fb7x0000701082432.g0(Unknown 
> Source)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
>       at 
> org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMethod.java:46)
>       at 
> org.apache.derby.impl.sql.execute.CallStatementResultSet.open(CallStatementResultSet.java:57)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:370)
>       at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1225)
>       ... 17 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