Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
None
-
None
-
None
-
Derby 10.7.1.1 + patch for cycle detection problem
-
Crash
Description
During the running of ManifoldCF tests, the JDBC error "No current connection" is thrown. Looking at derby.log for the time when this happens, the following can be found:
Thu Mar 31 13:26:28 EDT 2011 Thread[Thread-458,5,main] (XID = 636), (SESSIONID \
= 11), (DATABASE = /data/mcf/trunk/test-output/filesystem/dbname), (DRDAID = nu\
ll), Failed Statement is: SELECT id,status,checktime FROM jobqueue WHERE jobid=\
? AND dochash=? FOR UPDATE
org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Internal Err\
or-- statistics not found in selectivityForConglomerate.
cd = ConglomerateDescriptor: conglomerateNumber = 1985 name = I1301592382768 u\
uid = bfd00180-012f-0cf3-92ab-00000674d0a0 indexable = true
numKeys = 2
at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(Sani\
tyManager.java:162)
at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(Sani\
tyManager.java:147)
at org.apache.derby.iapi.sql.dictionary.TableDescriptor.selectivityForC\
onglomerate(TableDescriptor.java:1345)
at org.apache.derby.impl.sql.compile.PredicateList.selectivity(Predicat\
eList.java:3905)
at org.apache.derby.impl.sql.compile.FromBaseTable.estimateCost(FromBas\
eTable.java:1279)
at org.apache.derby.impl.sql.compile.OptimizerImpl.estimateTotalCost(Op\
timizerImpl.java:2626)
at org.apache.derby.impl.sql.compile.OptimizerImpl.costBasedCostOptimiz\
able(OptimizerImpl.java:2172)
at org.apache.derby.impl.sql.compile.OptimizerImpl.costOptimizable(Opti\
mizerImpl.java:1985)
at org.apache.derby.impl.sql.compile.FromBaseTable.optimizeIt(FromBaseT\
able.java:521)
at org.apache.derby.impl.sql.compile.ProjectRestrictNode.optimizeIt(Pro\
jectRestrictNode.java:316)
at org.apache.derby.impl.sql.compile.OptimizerImpl.costPermutation(Opti\
mizerImpl.java:1939)
at org.apache.derby.impl.sql.compile.SelectNode.optimize(SelectNode.jav\
a:1916)
at org.apache.derby.impl.sql.compile.DMLStatementNode.optimizeStatement\
(DMLStatementNode.java:315)
at org.apache.derby.impl.sql.compile.CursorNode.optimizeStatement(Curso\
rNode.java:558)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStateme\
nt.java:381)
at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.\
java:90)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prep\
areInternalStatement(GenericLanguageConnectionContext.java:1101)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPrepar\
edStatement.java:131)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPrep\
aredStatement20.java:82)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPrep\
aredStatement30.java:63)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(EmbedPrep\
aredStatement40.java:40)
at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.ja\
va:105)
at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedCon\
nection.java:1613)
at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedCon\
nection.java:1441)
at com.bitmechanic.sql.PooledConnection.prepareStatement(PooledConnecti\
on.java:352)
at org.apache.manifoldcf.core.database.Database.execute(Database.java:5\
86)
at org.apache.manifoldcf.core.database.Database$ExecuteQueryThread.run(\
Database.java:421)
---------------
Stack traces for all live threads:
Thread name=Expiration thread '1' id=243 priority=5 state=WAITING isdaemon=true
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
org.apache.manifoldcf.crawler.system.DocumentCleanupQueue.getDocuments(\
DocumentCleanupQueue.java:100)
org.apache.manifoldcf.crawler.system.ExpireThread.run(ExpireThread.java\
:89)
Thread name=Document delete thread '0' id=253 priority=5 state=WAITING isdaemon\
=true
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
org.apache.manifoldcf.crawler.system.DocumentDeleteQueue.getDocuments(D\
ocumentDeleteQueue.java:100)
org.apache.manifoldcf.crawler.system.DocumentDeleteThread.run(DocumentD\
eleteThread.java:89)
Thread name=Worker thread '33' id=175 priority=5 state=WAITING isdaemon=true
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
org.apache.manifoldcf.crawler.system.DocumentQueue.getDocument(Document\
Queue.java:110)
...
Thread name=Thread-460 id=469 priority=5 state=WAITING isdaemon=true
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.\
java:197)
org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.jav\
a:90)
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepare\
InternalStatement(GenericLanguageConnectionContext.java:1101)
org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedS\
tatement.java:131)
org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPrepare\
dStatement20.java:82)
org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPrepare\
dStatement30.java:63)
org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(EmbedPrepare\
dStatement40.java:40)
org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.java:\
105)
org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnec\
tion.java:1613)
org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnec\
tion.java:1441)
...
Thread name=Thread-459 id=468 priority=5 state=RUNNABLE isdaemon=true
java.lang.Object.hashCode(Native Method)
org.apache.derby.impl.services.locks.Lock.hashCode(Lock.java:145)
java.util.HashMap.get(HashMap.java:300)
org.apache.derby.impl.services.locks.LockSpace.isLockHeld(LockSpace.jav\
a:322)
org.apache.derby.impl.services.locks.AbstractPool.isLockHeld(AbstractPo\
ol.java:322)
org.apache.derby.impl.store.raw.xact.RowLocking3.lockContainer(RowLocki\
ng3.java:144)
org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(B\
aseContainerHandle.java:809)
org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(\
BaseDataFileFactory.java:752)
org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(\
BaseDataFileFactory.java:568)
org.apache.derby.impl.store.raw.xact.Xact.openContainer(Xact.java:1313)
org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(O\
penConglomerate.java:909)
org.apache.derby.impl.store.access.heap.Heap.open(Heap.java:683)
org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(RAMT\
ransaction.java:476)
org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(RAMT\
ransaction.java:1308)
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorViaIn\
dexMinion(DataDictionaryImpl.java:8567)
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorViaIn\
dex(DataDictionaryImpl.java:8525)
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.locateSchemaRow(Da\
taDictionaryImpl.java:1649)
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSchemaDescripto\
r(DataDictionaryImpl.java:1516)
org.apache.derby.impl.sql.compile.QueryTreeNode.getSchemaDescriptor(Que\
ryTreeNode.java:1437)
org.apache.derby.impl.sql.compile.QueryTreeNode.getSchemaDescriptor(Que\
ryTreeNode.java:1370)
org.apache.derby.impl.sql.compile.DMLModStatementNode.verifyTargetTable\
(DMLModStatementNode.java:201)
org.apache.derby.impl.sql.compile.DeleteNode.bindStatement(DeleteNode.j\
ava:221)
org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.\
java:324)
org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.jav\
a:90)
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepare\
InternalStatement(GenericLanguageConnectionContext.java:1101)
org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedS\
tatement.java:131)
org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPrepare\
dStatement20.java:82)
org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPrepare\
dStatement30.java:63)
org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(EmbedPrepare\
dStatement40.java:40)
org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.java:\
105)
org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnec\
tion.java:1613)
org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnec\
tion.java:1441)
...
Thread name=Thread-458 id=467 priority=5 state=RUNNABLE isdaemon=true
java.lang.Thread.dumpThreads(Native Method)
java.lang.Thread.getAllStackTraces(Thread.java:1530)
org.apache.derby.shared.common.sanity.ThreadDump.getStackDumpString(Thr\
eadDump.java:34)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja\
va:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso\
rImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.derby.shared.common.sanity.AssertFailure$1.run(AssertFailure\
.java:165)
java.security.AccessController.doPrivileged(Native Method)
org.apache.derby.shared.common.sanity.AssertFailure.dumpThreads(AssertF\
ailure.java:159)
org.apache.derby.shared.common.sanity.AssertFailure.<init>(AssertFailur\
e.java:72)
org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityM\
anager.java:162)
org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityM\
anager.java:147)
org.apache.derby.iapi.sql.dictionary.TableDescriptor.selectivityForCong\
lomerate(TableDescriptor.java:1345)
org.apache.derby.impl.sql.compile.PredicateList.selectivity(PredicateLi\
st.java:3905)
org.apache.derby.impl.sql.compile.FromBaseTable.estimateCost(FromBaseTa\
ble.java:1279)
org.apache.derby.impl.sql.compile.OptimizerImpl.estimateTotalCost(Optim\
izerImpl.java:2626)
org.apache.derby.impl.sql.compile.OptimizerImpl.costBasedCostOptimizabl\
e(OptimizerImpl.java:2172)
org.apache.derby.impl.sql.compile.OptimizerImpl.costOptimizable(Optimiz\
erImpl.java:1985)
org.apache.derby.impl.sql.compile.FromBaseTable.optimizeIt(FromBaseTabl\
e.java:521)
org.apache.derby.impl.sql.compile.ProjectRestrictNode.optimizeIt(Projec\
tRestrictNode.java:316)
org.apache.derby.impl.sql.compile.OptimizerImpl.costPermutation(Optimiz\
erImpl.java:1939)
org.apache.derby.impl.sql.compile.SelectNode.optimize(SelectNode.java:1\
916)
org.apache.derby.impl.sql.compile.DMLStatementNode.optimizeStatement(DM\
LStatementNode.java:315)
org.apache.derby.impl.sql.compile.CursorNode.optimizeStatement(CursorNo\
de.java:558)
org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.\
java:381)
org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.jav\
a:90)
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepare\
InternalStatement(GenericLanguageConnectionContext.java:1101)
org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedS\
tatement.java:131)
org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPrepare\
dStatement20.java:82)
org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPrepare\
dStatement30.java:63)
org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(EmbedPrepare\
dStatement40.java:40)
org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.java:\
105)
org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnec\
tion.java:1613)
org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnec\
tion.java:1441)
...
Thread name=derby.rawStoreDaemon id=11 priority=5 state=TIMED_WAITING isdaemon=\
true
java.lang.Object.wait(Native Method)
org.apache.derby.impl.services.daemon.BasicDaemon.rest(BasicDaemon.java\
:571)
org.apache.derby.impl.services.daemon.BasicDaemon.run(BasicDaemon.java:\
388)
java.lang.Thread.run(Thread.java:662)
---------------
Cleanup action completed
Thu Mar 31 13:26:28 EDT 2011 Thread[Thread-472,5,main] (XID = 671), (SESSIONID \
= 7), (DATABASE = /data/mcf/trunk/test-output/filesystem/dbname), (DRDAID = nul\
l), Cleanup action starting
Thu Mar 31 13:26:28 EDT 2011 Thread[Thread-472,5,main] (XID = 671), (SESSIONID \
= 7), (DATABASE = /data/mcf/trunk/test-output/filesystem/dbname), (DRDAID = nul\
l), Failed Statement is: INSERT INTO ingeststatus (id,changecount,dockey,lastve\
rsion,firstingest,connectionname,authorityname,urihash,lastoutputversion,lastin\
gest,docuri) VALUES (?,?,?,?,?,?,?,?,?,?,?) with 11 parameters begin parameter \
#1: 1301592386640 :end parameter begin parameter #2: 1 :end parameter begin par\
ameter #3: File Connection:C6F9B4AFF62656360BA4A21131C1D3C4A72922BE :end parame\
ter begin parameter #4: CLOB(16) :end parameter begin parameter #5: 13015923887\
06 :end parameter begin parameter #6: Null Connection :end parameter begin para\
meter #7: :end parameter begin parameter #8: 22FF219C5BA7FDE80DDA8DDDAC753194F\
04FAB13 :end parameter begin parameter #9: CLOB(0) :end parameter begin paramet\
er #10: 1301592388706 :end parameter begin parameter #11: CLOB(62) :end paramet\
er
ERROR 23505: The statement was aborted because it would have caused a duplicate\
key value in a unique or primary key constraint or unique index identified by \
'I1301592382805' defined on 'INGESTSTATUS'.
at org.apache.derby.iapi.error.StandardException.newException(StandardE\
xception.java:303)
at org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(In\
dexChanger.java:466)
at org.apache.derby.impl.sql.execute.IndexChanger.doInsert(IndexChanger\
.java:383)
at org.apache.derby.impl.sql.execute.IndexChanger.insert(IndexChanger.j\
ava:590)
at org.apache.derby.impl.sql.execute.IndexSetChanger.insert(IndexSetCha\
nger.java:268)
at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(RowChange\
rImpl.java:453)
at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(I\
nsertResultSet.java:1028)
at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultS\
et.java:505)
at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Gener\
icPreparedStatement.java:436)
at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPr\
eparedStatement.java:317)
at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStat\
ement.java:1241)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(E\
ement.java:1241)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(E\
mbedPreparedStatement.java:1686)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Embe\
dPreparedStatement.java:308)
at org.apache.manifoldcf.core.database.Database.execute(Database.java:\
606)
at org.apache.manifoldcf.core.database.Database$ExecuteQueryThread.run\
(Database.java:421)
Cleanup action completed
----------------------------------------------------------------
Attachments
Issue Links
- blocks
-
CONNECTORS-172 Intermittent test failures
- Resolved
- duplicates
-
DERBY-5153 Intermittent ASSERT FAILED Internal Error-- statistics not found in selectivityForConglomerate when running InterruptResilienceTest
- Closed