[ http://issues.apache.org/jira/browse/DERBY-1118?page=comments#action_12374257 ]
Manjula Kutty commented on DERBY-1118: -------------------------------------- I re ran the test after Mikes fix to DERBY-1189, and I don't see the Exception now. So this bug also got fixed from the fix to DERBY-1189. Thanks to Mike > ERROR XBCA0: Cannot create new object with key Page(644,Container(0, 928))in > PageCache cache. The object already exists in the cache. > ------------------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-1118 > URL: http://issues.apache.org/jira/browse/DERBY-1118 > Project: Derby > Type: Bug > Components: Store > Versions: 10.2.0.0 > Environment: With yesterdays derbyjars, on windows 2000 machine with jdk1.5 > Reporter: Manjula Kutty > > I have a small test application with 4 different threads , 4 of them have > their own derby connection. From these threads, one thread will be doing > inplace compression and online back up at every 10 minutes, while others are > busy with inserts updates and deletes with some sleep in between. I have > inserts with both clobs and randomly blobs. The inserts are taking place in > 2 tables which have referential constraints. I'm pasting the exceptions I > got in the same order as I got.. > ERROR 23505: The statement was aborted because it would have caused a dupli > cate key value in a unique or primary key constraint or unique index identi > fied by 'ATTACH__PK' defined on 'ATTACH'. > at org.apache.derby.iapi.error.StandardException.newException(Stand > ardException.java:322) > at org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDup > s(IndexChanger.java:487) > at org.apache.derby.impl.sql.execute.IndexChanger.doInsert(IndexCha > nger.java:405) > at org.apache.derby.impl.sql.execute.IndexChanger.insert(IndexChang > er.java:611) > at org.apache.derby.impl.sql.execute.IndexSetChanger.insert(IndexSe > tChanger.java:267) > at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(RowCh > angerImpl.java:443) > at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCo > re(InsertResultSet.java:993) > at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertRes > ultSet.java:522) > at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Gener > icPreparedStatement.java:359) > at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Embed > Statement.java:1142) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStateme > nt(EmbedPreparedStatement.java:1421) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate( > EmbedPreparedStatement.java:263) > at com.ibm.db2j.tests.scenario.utils.DbTasks.insertMail(DbTasks.jav > a:359) > at com.ibm.db2j.tests.scenario.tasks.Refresh.insertMail(Refresh.jav > a:58) > at com.ibm.db2j.tests.scenario.tasks.Refresh.doWork(Refresh.java:42 > ) > at com.ibm.db2j.tests.scenario.tasks.Refresh.run(Refresh.java:21) > ERROR 40001: A lock could not be obtained due to a deadlock, cycle of locks > and waiters is: > Lock : LATCH, ATTACH, Page(644,Container(0, 928)) > Waiting XID : {4166, org.apache.derby.impl.store.raw.data.BaseContainerHa > [EMAIL PROTECTED] , APP, CALL SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE(?, ?, > ?, ? > , ?) > Granted XID : {4166, org.apache.derby.impl.store.raw.data.BaseContainerHa > [EMAIL PROTECTED] > . The selected victim is XID : 4166. > at org.apache.derby.iapi.error.StandardException.newException(Stand > ardException.java:322) > at org.apache.derby.impl.services.locks.Deadlock.buildException(Dea > dlock.java:362) > at org.apache.derby.impl.services.lock > s.LockSet.lockObject(LockSet. > java:458) > at org.apache.derby.impl.services.locks.SinglePool.latchObject(Sing > lePool.java:121) > at org.apache.derby.impl.store.raw.data.BasePage.setExclusive(BaseP > age.java:1724) > at org.apache.derby.impl.store.raw.data.BaseContainer.latchPage(Bas > eContainer.java:504) > at org.apache.derby.impl.store.raw.data.FileContainer.latchPage(Fil > eContainer.java:3289) > at org.apache.derby.impl.store.raw.data.FileContainer.getUserPage(F > ileContainer.java:2396) > at org.apache.derby.impl.store.raw.data.FileContainer.getInsertable > Page(FileContainer.java:2724) > at org.apache.derby.impl.store.raw.data.FileContainer.getPageForIns > ert(FileContainer.java:2802) > at org.apache.derby.impl.store.raw.data.FileContainer.getPageForCom > press(FileContainer.java:2765) > at org.apache.derby.impl.store.raw.data.BaseContainerHandle.getPage > ForCompress(BaseContainerHandle.java:362) > at org.apache.derby.impl.store.raw.data.StoredPage.moveRecordForCom > pressAtSlot(StoredPage.java:6869) > at org.apache.derby.impl.store.access.heap.HeapCompressScan.fetchRo > wsForCompress(HeapCompressScan.java:251) > at org.apache.derby.impl.store.access.heap.HeapCompressScan.fetchNe > xtGroup(HeapCompressScan.java:115) > at org.apache.derby.iapi.db.OnlineCompress.defragmentRows(OnlineCom > press.java:383) > at org.apache.derby.iapi.db.OnlineCompress.compressTable(OnlineComp > ress.java:227) > at org.apache.derby.catalog.SystemProcedures.SYSCS_INPLACE_COMPRESS > _TABLE(SystemProcedures.java:858) > at org.apache.derby.exe.ac6b91c056x0109xff42xc9a3x0000001a42580.g0( > Unknown Source) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessor > Impl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod > AccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(Refl > ectMethod.java:45) > at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(Ca > llStatementResultSet.java:67) > at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Gener > icPreparedStatement.java:359) > at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Embed > Statement.java:1142) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStateme > nt(EmbedPreparedStatement.java:1421) > at org.apache.derby.impl.jdbc.EmbedCallableStatement.executeStateme > nt(EmbedCallableStatement.java:109) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(EmbedP > reparedStatement.java:1105) > at com.ibm.db2j.tests.scenario.utils.DbTasks.compressTable(DbTasks. > java:451) > at com.ibm.db2j.tests.scenario.tasks.Backup.DoCompress(Backup.java: > 47) > at com.ibm.db2j.tests.scenario.tasks.Backup.run(Backup.java:34) > ERROR XBCA0: Cannot create new object with key Page(644,Container(0, 928)) > in PageCache cache. The object already exists in the cache. > at org.apache.derby.iapi.error.StandardException.newException(Stand > ardException.java:322) > at org.apache.derby.impl.services.cache.Clock.create(Clock.java:429 > ) > at org.apache.derby.impl.store.raw.data.FileContainer.initPage(File > Container.java:2297) > at org.apache.derby.impl.store.raw.data.FileContainer.newPage(FileC > ontainer.java:1761) > at org.apache.derby.impl.store.raw.data.BaseContainer.addPage(BaseC > ontainer.java:291) > at org.apache.derby.impl.store.raw.data.StoredPage.getNewOverflowPa > ge(StoredPage.java:8150) > at org.apache.derby.impl.store.raw.data.BasePage.insertLongColumn(B > asePage.java:922) > at org.apache.derby.impl.store.raw.data.BasePage.insertAllowOverflo > w(BasePage.java:825) > at org.apache.derby.impl.store.raw.data.BasePage.insert(BasePage.ja > va:694) > at org.apache.derby.impl.store.access.heap.HeapController.doInsert( > HeapController.java:306) > at org.apache.derby.impl.store.access.heap.HeapController.insertAnd > FetchLocation(HeapController.java:597) > at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(RowCh > angerImpl.java:442) > at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCo > re(InsertResultSet.java:993) > at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertRes > ultSet.java:522) > at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Gener > icPreparedStatement.java:359) > at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Embed > Statement.java:1142) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStateme > nt(EmbedPreparedStatement.java:1421) > at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate( > EmbedPreparedStatement.java:263) > at com.ibm.db2j.tests.scenario.utils.DbTasks.insertMail(DbTasks.jav > a:359) > at com.ibm.db2j.tests.scenario.tasks.Refresh.insertMail(Refresh.jav > a:58) > at com.ibm.db2j.tests.scenario.tasks.Refresh.doWork(Refresh.java:42 > ) > at com.ibm.db2j.tests.scenario.tasks.Refresh.run(Refresh.java:21) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
