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 "Myrna van Lunteren (JIRA)" <ji...@apache.org> on 2007/11/06 23:22:51 UTC
[jira] Created: (DERBY-3180) error XSDA3 when test is executing
SYSCS_INPLACE_COMPRESS_TABLE in specific situation
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.0.0
Reporter: Myrna van Lunteren
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.
[jira] Assigned: (DERBY-3180) error XSDA3 when test is executing
SYSCS_INPLACE_COMPRESS_TABLE in specific situation
Posted by "Mike Matrigali (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-3180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Matrigali reassigned DERBY-3180:
-------------------------------------
Assignee: Mike Matrigali
> 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.0.0
> Reporter: Myrna van Lunteren
> Assignee: Mike Matrigali
> 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.
[jira] Commented: (DERBY-3180) error XSDA3 when test is executing
SYSCS_INPLACE_COMPRESS_TABLE in specific situation
Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-3180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12565672#action_12565672 ]
Knut Anders Hatlen commented on DERBY-3180:
-------------------------------------------
This error is also seen in SetTransactionIsolationTest. See DERBY-3381.
> 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.0.0
> Reporter: Myrna van Lunteren
> Assignee: Mike Matrigali
> 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.
[jira] Updated: (DERBY-3180) error XSDA3 when test is executing
SYSCS_INPLACE_COMPRESS_TABLE in specific situation
Posted by "Myrna van Lunteren (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-3180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Myrna van Lunteren updated DERBY-3180:
--------------------------------------
Attachment: derby.log
DatabaseMetaDataTest.java
> 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.0.0
> Reporter: Myrna van Lunteren
> 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.
[jira] Resolved: (DERBY-3180) error XSDA3 when test is executing
SYSCS_INPLACE_COMPRESS_TABLE in specific situation
Posted by "Mike Matrigali (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DERBY-3180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Matrigali resolved DERBY-3180.
-----------------------------------
Resolution: Duplicate
Fix Version/s: 10.5.0.0
I have verified that this issue is fixed by the changes submitted to fix DERBY-3625. To do this I
reverted a codeline to time bug was originally filed and applied the attached file. The repro showed
up as described when running the test twice. I think hand applied just the fix for DERBY-3625 and then the test passed both time when run twice rather than encountering the error.
The stack traces were also the same as expected from the DERBY-3625 bug.
> 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.0.0
>
> 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.