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 "Mike Matrigali (JIRA)" <de...@db.apache.org> on 2006/04/12 23:55:21 UTC

[jira] Resolved: (DERBY-1118) ERROR XBCA0: Cannot create new object with key Page(644,Container(0, 928))in PageCache cache. The object already exists in the cache.

     [ http://issues.apache.org/jira/browse/DERBY-1118?page=all ]
     
Mike Matrigali resolved DERBY-1118:
-----------------------------------

    Fix Version: 10.2.0.0
     Resolution: Fixed
      Assign To: Mike Matrigali

Fixed by changes to DERBY-1189.

> 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
>     Assignee: Mike Matrigali
>      Fix For: 10.2.0.0

>
> 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
> ndle@f553e3} , APP, CALL SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE(?, ?, ?, ?
> , ?)
>   Granted XID : {4166, org.apache.derby.impl.store.raw.data.BaseContainerHa
> ndle@f553e3}
> . 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