[ 
https://issues.apache.org/jira/browse/DERBY-6153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13624790#comment-13624790
 ] 

Dag H. Wanvik commented on DERBY-6153:
--------------------------------------

Later in the same test run we see there is no space left on the log device, so 
that's probably the IOException. This probably means the assert is 
inappropriate during corrupt database shutdown operation; or the shutdown 
doesn't happen the way it should.
                
> Derby5234Test..test_03_triggeringEdge: sanity AssertFailure during LogToFile 
> call to markCorrupted after IOException
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-6153
>                 URL: https://issues.apache.org/jira/browse/DERBY-6153
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.11.0.0
>         Environment: linux_ia32_jdk5
>            Reporter: Dag H. Wanvik
>
> In nighlies (suites.All on linux_ia32_jdk5), cf. 
> http://download.java.net/javadesktop/derby/javadb-5574814-report/javadb-5574814-3625325-details.html
> we this this error:
> ava.sql.SQLException: Java exception: 'ASSERT FAILED: 
> org.apache.derby.shared.common.sanity.AssertFailure'.
>       at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:42)
>       at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:148)
>       at org.apache.derby.impl.jdbc.Util.javaException(Util.java:370)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:436)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:353)
>       at 
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2400)
>       at 
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:85)
>       at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1436)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1724)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeLargeUpdate(EmbedPreparedStatement.java:320)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:309)
>       at 
> org.apache.derbyTesting.functionTests.tests.store.Derby5234Test.insertRows(Derby5234Test.java:159)
>       at 
> org.apache.derbyTesting.functionTests.tests.store.Derby5234Test.vetBasic(Derby5234Test.java:133)
>       at 
> org.apache.derbyTesting.functionTests.tests.store.Derby5234Test.test_03_triggeringEdge(Derby5234Test.java:213)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:117)
>       at 
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:442)
>       at 
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:459)
>       at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>       at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>       at junit.extensions.TestSetup.run(TestSetup.java:25)
>       at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED
>       at 
> org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:98)
>       at 
> org.apache.derby.impl.services.cache.CacheEntry.lock(CacheEntry.java:115)
>       at 
> org.apache.derby.impl.services.cache.ConcurrentCache.discard(ConcurrentCache.java:636)
>       at 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.markCorrupt(BaseDataFileFactory.java:1317)
>       at 
> org.apache.derby.impl.store.raw.log.LogToFile.markCorrupt(LogToFile.java:620)
>       at 
> org.apache.derby.impl.store.raw.log.LogToFile.flush(LogToFile.java:4115)
>       at 
> org.apache.derby.impl.store.raw.log.LogToFile.flush(LogToFile.java:1858)
>       at 
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.flush(BaseDataFileFactory.java:1400)
>       at 
> org.apache.derby.impl.store.raw.data.CachedPage.writePage(CachedPage.java:763)
>       at 
> org.apache.derby.impl.store.raw.data.CachedPage.clean(CachedPage.java:612)
>       at 
> org.apache.derby.impl.services.cache.ConcurrentCache.cleanAndUnkeepEntry(ConcurrentCache.java:551)
>       at 
> org.apache.derby.impl.services.cache.ClockPolicy.rotateClock(ClockPolicy.java:476)
>       at 
> org.apache.derby.impl.services.cache.ClockPolicy.insertEntry(ClockPolicy.java:176)
>       at 
> org.apache.derby.impl.services.cache.ConcurrentCache.insertIntoFreeSlot(ConcurrentCache.java:208)
>       at 
> org.apache.derby.impl.services.cache.ConcurrentCache.find(ConcurrentCache.java:284)
>       at 
> org.apache.derby.impl.store.raw.data.FileContainer.getAllocPage(FileContainer.java:2792)
>       at 
> org.apache.derby.impl.store.raw.data.BaseContainer.getAllocPage(BaseContainer.java:486)
>       at 
> org.apache.derby.impl.store.raw.data.BaseContainerHandle.getAllocPage(BaseContainerHandle.java:327)
>       at 
> org.apache.derby.impl.store.raw.data.AllocationCache.validate(AllocationCache.java:579)
>       at 
> org.apache.derby.impl.store.raw.data.AllocationCache.getLastPageNumber(AllocationCache.java:122)
>       at 
> org.apache.derby.impl.store.raw.data.FileContainer.pageValid(FileContainer.java:2077)
>       at 
> org.apache.derby.impl.store.raw.data.FileContainer.getUserPage(FileContainer.java:2532)
>       at 
> org.apache.derby.impl.store.raw.data.FileContainer.getInsertablePage(FileContainer.java:2877)
>       at 
> org.apache.derby.impl.store.raw.data.FileContainer.getPageForInsert(FileContainer.java:3027)
>       at 
> org.apache.derby.impl.store.raw.data.BaseContainerHandle.getPageForInsert(BaseContainerHandle.java:372)
>       at 
> org.apache.derby.impl.store.access.heap.HeapController.doInsert(HeapController.java:244)
>       at 
> org.apache.derby.impl.store.access.heap.HeapController.insert(HeapController.java:575)
>       at 
> org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(RowChangerImpl.java:457)
>       at 
> org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1057)
>       at 
> org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:518)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:452)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:333)
>       at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1344)
> The assertFailure is masking the real IOException here. If this means the 
> assertion should be removed or something else is wrong, I don't know. I'll 
> see if I can dig up the IOException on derby.log

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to