[jira] Updated: (DERBY-3757) 'ASSERT FAILED transaction table has null entry when running new StressMultiTest
[ https://issues.apache.org/jira/browse/DERBY-3757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Knut Anders Hatlen updated DERBY-3757: -- Issue & fix info: [High Value Fix] (was: [Patch Available, High Value Fix]) Fix Version/s: 10.6.0.0 Committed revision 892912. If the fix doesn't cause any problems, and StressMultiTest does not run into this issue anymore, we should probably back-port it to 10.5 to make StressMultiTest run cleanly on that branch too. (StressMultiTest was introduced in 10.5.) > 'ASSERT FAILED transaction table has null entry when running new > StressMultiTest > > > Key: DERBY-3757 > URL: https://issues.apache.org/jira/browse/DERBY-3757 > Project: Derby > Issue Type: Bug > Components: Store >Affects Versions: 10.5.1.1 > Environment: Windows XP > java version "1.5.0" > Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20070201 > (SR4)) > IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 > j9vmwi3223-20070201 (JIT enabled) > J9VM - 20070131_11312_lHdSMR > JIT - 20070109_1805ifx1_r8 > GC - 200701_09) > JCL - 20070131 >Reporter: Kathey Marsden >Assignee: Knut Anders Hatlen > Fix For: 10.6.0.0 > > Attachments: Derby-3757_1.diff, sync_trans.diff, > testStressMulti.tar.gz > > > When trying the DERBY-1764-V2.diff patch of DERBY-1764, I got this assertion > running the test. It appears to be a bug iin Derby. > 1) > testStressMulti(org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest)java.sql.SQLException: > Java exception: 'ASSERT FAILED transaction table has null entry: > org.apache.derby.shared.common.sanity.AssertFailure'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87) > at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2183) > at > org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1325) > at > org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625) > at .(Unknown Source) > at > org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.jav > a:317) > at java.lang.Thread.run(Thread.java:803) > Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED > transaction table has null entry > at > org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120) > at > org.apache.derby.impl.store.raw.xact.TransactionTable.getTransactionInfo(TransactionTable.java:968) > at > org.apache.derby.impl.store.raw.xact.XactFactory.getTransactionInfo(XactFactory.java:991) > at > org.apache.derby.impl.store.raw.RawStore.getTransactionInfo(RawStore.java:1153) > at > org.apache.derby.impl.store.access.RAMAccessManager.getTransactionInfo(RAMAccessManager.java:912) > at > org.apache.derby.impl.services.locks.Deadlock.buildException(Deadlock.java:266) > at > org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(ConcurrentLockSet.java:613) > at > org.apache.derby.impl.services.locks.AbstractPool.lockObject(AbstractPool.java:117) > at > org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(RowLocking3.java:248) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:504) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:638) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(B2IRowLocking3.java:335) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(B2IRowLocking3.java:628) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(B2IRowLockingRR.java:112) > at > org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(BTreeForwardScan.java:304) > at > org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(BTreeScan.java:1809) > at > org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(TableScanResultSet.java:680) > at > org.apache.derby.impl.sql.execute.In
[jira] Updated: (DERBY-3757) 'ASSERT FAILED transaction table has null entry when running new StressMultiTest
[ https://issues.apache.org/jira/browse/DERBY-3757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Knut Anders Hatlen updated DERBY-3757: -- Issue & fix info: [High Value Fix, Patch Available] (was: [High Value Fix]) Regression tests ran cleanly with the patch. > 'ASSERT FAILED transaction table has null entry when running new > StressMultiTest > > > Key: DERBY-3757 > URL: https://issues.apache.org/jira/browse/DERBY-3757 > Project: Derby > Issue Type: Bug > Components: Store >Affects Versions: 10.5.1.1 > Environment: Windows XP > java version "1.5.0" > Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20070201 > (SR4)) > IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 > j9vmwi3223-20070201 (JIT enabled) > J9VM - 20070131_11312_lHdSMR > JIT - 20070109_1805ifx1_r8 > GC - 200701_09) > JCL - 20070131 >Reporter: Kathey Marsden >Assignee: Knut Anders Hatlen > Attachments: Derby-3757_1.diff, sync_trans.diff, > testStressMulti.tar.gz > > > When trying the DERBY-1764-V2.diff patch of DERBY-1764, I got this assertion > running the test. It appears to be a bug iin Derby. > 1) > testStressMulti(org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest)java.sql.SQLException: > Java exception: 'ASSERT FAILED transaction table has null entry: > org.apache.derby.shared.common.sanity.AssertFailure'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87) > at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2183) > at > org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1325) > at > org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625) > at .(Unknown Source) > at > org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.jav > a:317) > at java.lang.Thread.run(Thread.java:803) > Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED > transaction table has null entry > at > org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120) > at > org.apache.derby.impl.store.raw.xact.TransactionTable.getTransactionInfo(TransactionTable.java:968) > at > org.apache.derby.impl.store.raw.xact.XactFactory.getTransactionInfo(XactFactory.java:991) > at > org.apache.derby.impl.store.raw.RawStore.getTransactionInfo(RawStore.java:1153) > at > org.apache.derby.impl.store.access.RAMAccessManager.getTransactionInfo(RAMAccessManager.java:912) > at > org.apache.derby.impl.services.locks.Deadlock.buildException(Deadlock.java:266) > at > org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(ConcurrentLockSet.java:613) > at > org.apache.derby.impl.services.locks.AbstractPool.lockObject(AbstractPool.java:117) > at > org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(RowLocking3.java:248) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:504) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:638) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(B2IRowLocking3.java:335) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(B2IRowLocking3.java:628) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(B2IRowLockingRR.java:112) > at > org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(BTreeForwardScan.java:304) > at > org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(BTreeScan.java:1809) > at > org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(TableScanResultSet.java:680) > at > org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(IndexRowToBaseRowResultSet.java:3 > 73) > at > org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(ProjectRestrictResultSet.java:255) > at > org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowC
[jira] Updated: (DERBY-3757) 'ASSERT FAILED transaction table has null entry when running new StressMultiTest
[ https://issues.apache.org/jira/browse/DERBY-3757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Knut Anders Hatlen updated DERBY-3757: -- Attachment: sync_trans.diff Here's a patch that changes the synchronization in the method and adds a comment about why. I believe this patch fixes this issue and DERBY-3916, but I haven't run any tests yet. > 'ASSERT FAILED transaction table has null entry when running new > StressMultiTest > > > Key: DERBY-3757 > URL: https://issues.apache.org/jira/browse/DERBY-3757 > Project: Derby > Issue Type: Bug > Components: Store >Affects Versions: 10.5.1.1 > Environment: Windows XP > java version "1.5.0" > Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20070201 > (SR4)) > IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 > j9vmwi3223-20070201 (JIT enabled) > J9VM - 20070131_11312_lHdSMR > JIT - 20070109_1805ifx1_r8 > GC - 200701_09) > JCL - 20070131 >Reporter: Kathey Marsden >Assignee: Knut Anders Hatlen > Attachments: Derby-3757_1.diff, sync_trans.diff, > testStressMulti.tar.gz > > > When trying the DERBY-1764-V2.diff patch of DERBY-1764, I got this assertion > running the test. It appears to be a bug iin Derby. > 1) > testStressMulti(org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest)java.sql.SQLException: > Java exception: 'ASSERT FAILED transaction table has null entry: > org.apache.derby.shared.common.sanity.AssertFailure'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87) > at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2183) > at > org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1325) > at > org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625) > at .(Unknown Source) > at > org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.jav > a:317) > at java.lang.Thread.run(Thread.java:803) > Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED > transaction table has null entry > at > org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120) > at > org.apache.derby.impl.store.raw.xact.TransactionTable.getTransactionInfo(TransactionTable.java:968) > at > org.apache.derby.impl.store.raw.xact.XactFactory.getTransactionInfo(XactFactory.java:991) > at > org.apache.derby.impl.store.raw.RawStore.getTransactionInfo(RawStore.java:1153) > at > org.apache.derby.impl.store.access.RAMAccessManager.getTransactionInfo(RAMAccessManager.java:912) > at > org.apache.derby.impl.services.locks.Deadlock.buildException(Deadlock.java:266) > at > org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(ConcurrentLockSet.java:613) > at > org.apache.derby.impl.services.locks.AbstractPool.lockObject(AbstractPool.java:117) > at > org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(RowLocking3.java:248) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:504) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:638) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(B2IRowLocking3.java:335) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(B2IRowLocking3.java:628) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(B2IRowLockingRR.java:112) > at > org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(BTreeForwardScan.java:304) > at > org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(BTreeScan.java:1809) > at > org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(TableScanResultSet.java:680) > at > org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(IndexRowToBaseRowResultSet.java:3 > 73) > at > org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(ProjectRestrictResultSet.jav
[jira] Updated: (DERBY-3757) 'ASSERT FAILED transaction table has null entry when running new StressMultiTest
[ https://issues.apache.org/jira/browse/DERBY-3757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Knut Anders Hatlen updated DERBY-3757: -- Urgency: Normal Bug behavior facts: (was: [Crash]) Triaged for 10.5.2. As far as I understand, the database does not need to rebooted after this failure, so unchecking crash. > 'ASSERT FAILED transaction table has null entry when running new > StressMultiTest > > > Key: DERBY-3757 > URL: https://issues.apache.org/jira/browse/DERBY-3757 > Project: Derby > Issue Type: Bug > Components: Store >Affects Versions: 10.5.1.1 > Environment: Windows XP > java version "1.5.0" > Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20070201 > (SR4)) > IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 > j9vmwi3223-20070201 (JIT enabled) > J9VM - 20070131_11312_lHdSMR > JIT - 20070109_1805ifx1_r8 > GC - 200701_09) > JCL - 20070131 >Reporter: Kathey Marsden > Attachments: Derby-3757_1.diff, testStressMulti.tar.gz > > > When trying the DERBY-1764-V2.diff patch of DERBY-1764, I got this assertion > running the test. It appears to be a bug iin Derby. > 1) > testStressMulti(org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest)java.sql.SQLException: > Java exception: 'ASSERT FAILED transaction table has null entry: > org.apache.derby.shared.common.sanity.AssertFailure'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87) > at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2183) > at > org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1325) > at > org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625) > at .(Unknown Source) > at > org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.jav > a:317) > at java.lang.Thread.run(Thread.java:803) > Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED > transaction table has null entry > at > org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120) > at > org.apache.derby.impl.store.raw.xact.TransactionTable.getTransactionInfo(TransactionTable.java:968) > at > org.apache.derby.impl.store.raw.xact.XactFactory.getTransactionInfo(XactFactory.java:991) > at > org.apache.derby.impl.store.raw.RawStore.getTransactionInfo(RawStore.java:1153) > at > org.apache.derby.impl.store.access.RAMAccessManager.getTransactionInfo(RAMAccessManager.java:912) > at > org.apache.derby.impl.services.locks.Deadlock.buildException(Deadlock.java:266) > at > org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(ConcurrentLockSet.java:613) > at > org.apache.derby.impl.services.locks.AbstractPool.lockObject(AbstractPool.java:117) > at > org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(RowLocking3.java:248) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:504) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:638) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(B2IRowLocking3.java:335) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(B2IRowLocking3.java:628) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(B2IRowLockingRR.java:112) > at > org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(BTreeForwardScan.java:304) > at > org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(BTreeScan.java:1809) > at > org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(TableScanResultSet.java:680) > at > org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(IndexRowToBaseRowResultSet.java:3 > 73) > at > org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(ProjectRestrictResultSet.java:255) > at > org.apache.derby.impl.sql.execute.NormalizeResultSet.ge
[jira] Updated: (DERBY-3757) 'ASSERT FAILED transaction table has null entry when running new StressMultiTest
[ https://issues.apache.org/jira/browse/DERBY-3757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tiago R. Espinha updated DERBY-3757: Attachment: testStressMulti.tar.gz I have hit this bug when doing changes for DERBY-4217. It doesn't seem to be connected, but the failure has happened at a different place. The underlying error in derby.log seems to be the same though. Here's the stack trace for the failure: 8<-- junit.framework.AssertionFailedError: Caused by: java.sql.SQLNonTransientConnectionException: Network protocol exception: DSS length not 0 at end of same id chain parse. The connection has been terminated. at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70) at org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:358) at org.apache.derby.client.am.Statement.executeQuery(Statement.java:483) at org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.select(StressMultiTest.java:535) at org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.java:409) at java.lang.Thread.run(Thread.java:619) Caused by: org.apache.derby.client.am.DisconnectException: Network protocol exception: DSS length not 0 at end of same id chain parse. The connection has been terminated. at org.apache.derby.client.net.Reply.endOfSameIdChainData(Reply.java:1174) at org.apache.derby.client.net.NetStatementReply.readOpenQuery(NetStatementReply.java:66) at org.apache.derby.client.net.StatementReply.readOpenQuery(StatementReply.java:50) at org.apache.derby.client.net.NetStatement.readOpenQuery_(NetStatement.java:156) at org.apache.derby.client.am.Statement.readOpenQuery(Statement.java:1478) at org.apache.derby.client.am.Statement.flowExecute(Statement.java:2095) at org.apache.derby.client.am.Statement.executeQueryX(Statement.java:489) at org.apache.derby.client.am.Statement.executeQuery(Statement.java:474) ... 3 more at org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest.handleException(StressMultiTest.java:331) at org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest.access$200(StressMultiTest.java:70) at org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.java:425) at java.lang.Thread.run(Thread.java:619) > 'ASSERT FAILED transaction table has null entry when running new > StressMultiTest > > > Key: DERBY-3757 > URL: https://issues.apache.org/jira/browse/DERBY-3757 > Project: Derby > Issue Type: Bug > Components: Store >Affects Versions: 10.5.1.1 > Environment: Windows XP > java version "1.5.0" > Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20070201 > (SR4)) > IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 > j9vmwi3223-20070201 (JIT enabled) > J9VM - 20070131_11312_lHdSMR > JIT - 20070109_1805ifx1_r8 > GC - 200701_09) > JCL - 20070131 >Reporter: Kathey Marsden > Attachments: Derby-3757_1.diff, testStressMulti.tar.gz > > > When trying the DERBY-1764-V2.diff patch of DERBY-1764, I got this assertion > running the test. It appears to be a bug iin Derby. > 1) > testStressMulti(org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest)java.sql.SQLException: > Java exception: 'ASSERT FAILED transaction table has null entry: > org.apache.derby.shared.common.sanity.AssertFailure'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87) > at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2183) > at > org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1325) > at > org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625) > at .(Unknown Source) > at > org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.jav > a:317) > at java.lang.Thread.run(Thread.java:803) > Caused by: org.apache.derby.shared.common.sanit
[jira] Updated: (DERBY-3757) 'ASSERT FAILED transaction table has null entry when running new StressMultiTest
[ https://issues.apache.org/jira/browse/DERBY-3757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Erlend Birkenes updated DERBY-3757: --- Attachment: Derby-3757_1.diff This patch just comments out the assert in org.apache.derby.impl.store.raw.xact.TransactionTable. > 'ASSERT FAILED transaction table has null entry when running new > StressMultiTest > > > Key: DERBY-3757 > URL: https://issues.apache.org/jira/browse/DERBY-3757 > Project: Derby > Issue Type: Bug > Components: Store >Affects Versions: 10.5.0.0 > Environment: Windows XP > java version "1.5.0" > Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20070201 > (SR4)) > IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 > j9vmwi3223-20070201 (JIT enabled) > J9VM - 20070131_11312_lHdSMR > JIT - 20070109_1805ifx1_r8 > GC - 200701_09) > JCL - 20070131 >Reporter: Kathey Marsden > Attachments: Derby-3757_1.diff > > > When trying the DERBY-1764-V2.diff patch of DERBY-1764, I got this assertion > running the test. It appears to be a bug iin Derby. > 1) > testStressMulti(org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest)java.sql.SQLException: > Java exception: 'ASSERT FAILED transaction table has null entry: > org.apache.derby.shared.common.sanity.AssertFailure'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87) > at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2183) > at > org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1325) > at > org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625) > at .(Unknown Source) > at > org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.jav > a:317) > at java.lang.Thread.run(Thread.java:803) > Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED > transaction table has null entry > at > org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120) > at > org.apache.derby.impl.store.raw.xact.TransactionTable.getTransactionInfo(TransactionTable.java:968) > at > org.apache.derby.impl.store.raw.xact.XactFactory.getTransactionInfo(XactFactory.java:991) > at > org.apache.derby.impl.store.raw.RawStore.getTransactionInfo(RawStore.java:1153) > at > org.apache.derby.impl.store.access.RAMAccessManager.getTransactionInfo(RAMAccessManager.java:912) > at > org.apache.derby.impl.services.locks.Deadlock.buildException(Deadlock.java:266) > at > org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(ConcurrentLockSet.java:613) > at > org.apache.derby.impl.services.locks.AbstractPool.lockObject(AbstractPool.java:117) > at > org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(RowLocking3.java:248) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:504) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:638) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(B2IRowLocking3.java:335) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(B2IRowLocking3.java:628) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(B2IRowLockingRR.java:112) > at > org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(BTreeForwardScan.java:304) > at > org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(BTreeScan.java:1809) > at > org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(TableScanResultSet.java:680) > at > org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(IndexRowToBaseRowResultSet.java:3 > 73) > at > org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(ProjectRestrictResultSet.java:255) > at > org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(NormalizeResultSet.java:186) > at > org.apache.derby.impl.sql.execute.DM
[jira] Updated: (DERBY-3757) 'ASSERT FAILED transaction table has null entry when running new StressMultiTest
[ https://issues.apache.org/jira/browse/DERBY-3757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kathey Marsden updated DERBY-3757: -- Derby Categories: [Crash, High Value Fix] (was: [Crash]) > 'ASSERT FAILED transaction table has null entry when running new > StressMultiTest > > > Key: DERBY-3757 > URL: https://issues.apache.org/jira/browse/DERBY-3757 > Project: Derby > Issue Type: Bug > Components: Store >Affects Versions: 10.5.0.0 > Environment: Windows XP > java version "1.5.0" > Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20070201 > (SR4)) > IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 > j9vmwi3223-20070201 (JIT enabled) > J9VM - 20070131_11312_lHdSMR > JIT - 20070109_1805ifx1_r8 > GC - 200701_09) > JCL - 20070131 >Reporter: Kathey Marsden > > When trying the DERBY-1764-V2.diff patch of DERBY-1764, I got this assertion > running the test. It appears to be a bug iin Derby. > 1) > testStressMulti(org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest)java.sql.SQLException: > Java exception: 'ASSERT FAILED transaction table has null entry: > org.apache.derby.shared.common.sanity.AssertFailure'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87) > at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2183) > at > org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1325) > at > org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625) > at .(Unknown Source) > at > org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.jav > a:317) > at java.lang.Thread.run(Thread.java:803) > Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED > transaction table has null entry > at > org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120) > at > org.apache.derby.impl.store.raw.xact.TransactionTable.getTransactionInfo(TransactionTable.java:968) > at > org.apache.derby.impl.store.raw.xact.XactFactory.getTransactionInfo(XactFactory.java:991) > at > org.apache.derby.impl.store.raw.RawStore.getTransactionInfo(RawStore.java:1153) > at > org.apache.derby.impl.store.access.RAMAccessManager.getTransactionInfo(RAMAccessManager.java:912) > at > org.apache.derby.impl.services.locks.Deadlock.buildException(Deadlock.java:266) > at > org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(ConcurrentLockSet.java:613) > at > org.apache.derby.impl.services.locks.AbstractPool.lockObject(AbstractPool.java:117) > at > org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(RowLocking3.java:248) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:504) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:638) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(B2IRowLocking3.java:335) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(B2IRowLocking3.java:628) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(B2IRowLockingRR.java:112) > at > org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(BTreeForwardScan.java:304) > at > org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(BTreeScan.java:1809) > at > org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(TableScanResultSet.java:680) > at > org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(IndexRowToBaseRowResultSet.java:3 > 73) > at > org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(ProjectRestrictResultSet.java:255) > at > org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(NormalizeResultSet.java:186) > at > org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWriteResultSet.java:127) > at > org.apache.derby.impl.sql.execute.UpdateRe
[jira] Updated: (DERBY-3757) 'ASSERT FAILED transaction table has null entry when running new StressMultiTest
[
https://issues.apache.org/jira/browse/DERBY-3757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mike Matrigali updated DERBY-3757:
--
I don't think this code is doing the right kind of synchronization, but given
that it is for diagnosics only I am not sure it is worth adding additional
synchronization. Would appreciate another set of eyes to try and figure out
how the null entry comes about.
The code in public TransactionInfo[] getTransactionInfo(), synchronizes on
"this"
synchronized(this)
{
int ntran = trans.size();
tinfo = new TransactionTableEntry[ntran];
LogInstant logInstant = null;
int i = 0;
for (Enumeration e = trans.elements();
e.hasMoreElements(); )
{
TransactionTableEntry ent =
(TransactionTableEntry)e.nextElement();
if (ent != null)
tinfo[i++] = (TransactionTableEntry)ent.clone();
if (SanityManager.DEBUG)
SanityManager.ASSERT(ent != null, "transaction table has nul
");
}
}
But the rest of the routine, like add and remove element seems to count on the
automatic synchronization of the
HashTable which is a field of this class. So could a concurrent remove or add
to the hash table affect the
middle of looping through the Enumeration and get a null?
I would lean toward just getting rid of this assert for this routine which is
used only for diagnostics like vti and error messages.
> 'ASSERT FAILED transaction table has null entry when running new
> StressMultiTest
>
>
> Key: DERBY-3757
> URL: https://issues.apache.org/jira/browse/DERBY-3757
> Project: Derby
> Issue Type: Bug
> Components: Store
>Affects Versions: 10.5.0.0
> Environment: Windows XP
> java version "1.5.0"
> Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20070201
> (SR4))
> IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32
> j9vmwi3223-20070201 (JIT enabled)
> J9VM - 20070131_11312_lHdSMR
> JIT - 20070109_1805ifx1_r8
> GC - 200701_09)
> JCL - 20070131
>Reporter: Kathey Marsden
>
> When trying the DERBY-1764-V2.diff patch of DERBY-1764, I got this assertion
> running the test. It appears to be a bug iin Derby.
> 1)
> testStressMulti(org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest)java.sql.SQLException:
> Java exception: 'ASSERT FAILED transaction table has null entry:
> org.apache.derby.shared.common.sanity.AssertFailure'.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
> at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)
> at
> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2183)
> at
> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1325)
> at
> org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625)
> at .(Unknown Source)
> at
> org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.jav
> a:317)
> at java.lang.Thread.run(Thread.java:803)
> Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED
> transaction table has null entry
> at
> org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120)
> at
> org.apache.derby.impl.store.raw.xact.TransactionTable.getTransactionInfo(TransactionTable.java:968)
> at
> org.apache.derby.impl.store.raw.xact.XactFactory.getTransactionInfo(XactFactory.java:991)
> at
> org.apache.derby.impl.store.raw.RawStore.getTransactionInfo(RawStore.java:1153)
> at
> org.apache.derby.impl.store.access.RAMAccessManager.getTransactionInfo(RAMAccessManager.java:912)
> at
> org.apache.derby.impl.services.locks.Deadlock.buildException(Deadlock.java:266)
> at
> org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(ConcurrentLockSet.java:613)
> at
> org.apache.derby.impl.services.locks.AbstractPool.lockObject(AbstractPool.java:117)
> at
> org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(RowLocking3.java:248)
> at
> org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:504)
> at
> org.apache.derby.impl.store.access.heap.HeapControll
[jira] Updated: (DERBY-3757) 'ASSERT FAILED transaction table has null entry when running new StressMultiTest
[ https://issues.apache.org/jira/browse/DERBY-3757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kathey Marsden updated DERBY-3757: -- Environment: Windows XP java version "1.5.0" Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20070201 (SR4)) IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223-20070201 (JIT enabled) J9VM - 20070131_11312_lHdSMR JIT - 20070109_1805ifx1_r8 GC - 200701_09) JCL - 20070131 > 'ASSERT FAILED transaction table has null entry when running new > StressMultiTest > > > Key: DERBY-3757 > URL: https://issues.apache.org/jira/browse/DERBY-3757 > Project: Derby > Issue Type: Bug > Components: Store >Affects Versions: 10.5.0.0 > Environment: Windows XP > java version "1.5.0" > Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20070201 > (SR4)) > IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 > j9vmwi3223-20070201 (JIT enabled) > J9VM - 20070131_11312_lHdSMR > JIT - 20070109_1805ifx1_r8 > GC - 200701_09) > JCL - 20070131 >Reporter: Kathey Marsden > > When trying the DERBY-1764-V2.diff patch of DERBY-1764, I got this assertion > running the test. It appears to be a bug iin Derby. > 1) > testStressMulti(org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest)java.sql.SQLException: > Java exception: 'ASSERT FAILED transaction table has null entry: > org.apache.derby.shared.common.sanity.AssertFailure'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87) > at org.apache.derby.impl.jdbc.Util.javaException(Util.java:244) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2183) > at > org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1325) > at > org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:625) > at .(Unknown Source) > at > org.apache.derbyTesting.functionTests.tests.multi.StressMultiTest$StressMultiRunnable.run(StressMultiTest.jav > a:317) > at java.lang.Thread.run(Thread.java:803) > Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED > transaction table has null entry > at > org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120) > at > org.apache.derby.impl.store.raw.xact.TransactionTable.getTransactionInfo(TransactionTable.java:968) > at > org.apache.derby.impl.store.raw.xact.XactFactory.getTransactionInfo(XactFactory.java:991) > at > org.apache.derby.impl.store.raw.RawStore.getTransactionInfo(RawStore.java:1153) > at > org.apache.derby.impl.store.access.RAMAccessManager.getTransactionInfo(RAMAccessManager.java:912) > at > org.apache.derby.impl.services.locks.Deadlock.buildException(Deadlock.java:266) > at > org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(ConcurrentLockSet.java:613) > at > org.apache.derby.impl.services.locks.AbstractPool.lockObject(AbstractPool.java:117) > at > org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForWrite(RowLocking3.java:248) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:504) > at > org.apache.derby.impl.store.access.heap.HeapController.lockRow(HeapController.java:638) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRowOnPage(B2IRowLocking3.java:335) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockScanRow(B2IRowLocking3.java:628) > at > org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockScanRow(B2IRowLockingRR.java:112) > at > org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(BTreeForwardScan.java:304) > at > org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(BTreeScan.java:1809) > at > org.apache.derby.impl.sql.execute.TableScanResultSet.getNextRowCore(TableScanResultSet.java:680) > at > org.apache.derby.impl.sql.execute.IndexRowToBaseRowResultSet.getNextRowCore(IndexRowToBaseRowResultSet.java:3 > 73) > at > org.apache.derby.impl.sql.execute.ProjectRestrictResultSet.getNextRowCore(ProjectRestrictResultSet.java:255) > at > org.apac
