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.