[ 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
> [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

Reply via email to