Tore Halset commented on CAY-1124:
----------------------------------
In the same thread dump, there were some other RUNNABLE that also looked strange. I do not know if those are relevant.
"TP-Processor12" daemon prio=10 tid=0x00002aab77946400 nid=0x166d runnable [0x0000000044d74000..0x0000000044d75db0]
java.lang.Thread.State: RUNNABLE
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethod(Class.java:1935)
at org.apache.cayenne.util.Invocation.lookupMethodInHierarchy(Invocation.java:134)
at org.apache.cayenne.util.Invocation.<init>(Invocation.java:111)
at org.apache.cayenne.util.Invocation.<init>(Invocation.java:65)
at org.apache.cayenne.event.EventManager$NonBlockingInvocation.<init>(EventManager.java:436)
at org.apache.cayenne.event.EventManager.addListener(EventManager.java:216)
at org.apache.cayenne.event.EventManager.addNonBlockingListener(EventManager.java:192)
at org.apache.cayenne.access.ObjectStore.setDataRowCache(ObjectStore.java:262)
at org.apache.cayenne.access.ObjectStore.<init>(ObjectStore.java:129)
at org.apache.cayenne.access.ObjectStore.<init>(ObjectStore.java:118)
at org.apache.cayenne.access.DataDomain.createDataContext(DataDomain.java:601)
"TP-Processor11" daemon prio=10 tid=0x00002aab77945800 nid=0x166c runnable [0x0000000044c73000..0x0000000044c74b30]
java.lang.Thread.State: RUNNABLE
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethod(Class.java:1935)
at org.apache.cayenne.util.Invocation.lookupMethodInHierarchy(Invocation.java:134)
at org.apache.cayenne.util.Invocation.<init>(Invocation.java:111)
at org.apache.cayenne.util.Invocation.<init>(Invocation.java:65)
at org.apache.cayenne.event.EventManager$NonBlockingInvocation.<init>(EventManager.java:436)
at org.apache.cayenne.event.EventManager.addListener(EventManager.java:216)
at org.apache.cayenne.event.EventManager.addNonBlockingListener(EventManager.java:192)
at org.apache.cayenne.access.ObjectStore.setDataRowCache(ObjectStore.java:262)
at org.apache.cayenne.access.ObjectStore.<init>(ObjectStore.java:129)
at org.apache.cayenne.access.ObjectStore.<init>(ObjectStore.java:118)
at org.apache.cayenne.access.DataDomain.createDataContext(DataDomain.java:601)
"TP-Processor7" daemon prio=10 tid=0x00002aab798c1800 nid=0xc30 runnable [0x0000000044067000..0x0000000044068ab0]
java.lang.Thread.State: RUNNABLE
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethod(Class.java:1935)
at org.apache.cayenne.util.Invocation.lookupMethodInHierarchy(Invocation.java:134)
at org.apache.cayenne.util.Invocation.<init>(Invocation.java:111)
at org.apache.cayenne.util.Invocation.<init>(Invocation.java:65)
at org.apache.cayenne.event.EventManager$NonBlockingInvocation.<init>(EventManager.java:436)
at org.apache.cayenne.event.EventManager.addListener(EventManager.java:216)
at org.apache.cayenne.event.EventManager.addNonBlockingListener(EventManager.java:192)
at org.apache.cayenne.access.ObjectStore.setDataRowCache(ObjectStore.java:262)
at org.apache.cayenne.access.ObjectStore.<init>(ObjectStore.java:129)
at org.apache.cayenne.access.ObjectStore.<init>(ObjectStore.java:118)
at org.apache.cayenne.access.DataDomain.createDataContext(DataDomain.java:601)
"DefaultQuartzScheduler_Worker-1" prio=10 tid=0x00002aab7b157c00 nid=0xc17 runnable [0x0000000043159000..0x000000004315
9b30]
java.lang.Thread.State: RUNNABLE
at org.apache.commons.collections.map.AbstractReferenceMap$ReferenceEntrySetIterator.hasNext(AbstractReferenceM
ap.java:736)
at org.apache.cayenne.access.ObjectStore.postprocessAfterCommit(ObjectStore.java:442)
at org.apache.cayenne.access.DataDomainFlushAction.postprocess(DataDomainFlushAction.java:258)
at org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:150)
- locked <0x00002aaab91a5c40> (a org.apache.cayenne.access.DataRowStore)
at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:821)
at org.apache.cayenne.access.DataDomain$2.transform(DataDomain.java:788)
at org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:847)
at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:785)
at org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1175)
- locked <0x00002aaad54ae3e8> (a org.apache.cayenne.access.ObjectStore)
at org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1088)
> DataRowStore blocked
> --------------------
>
> Key: CAY-1124
> URL: https://issues.apache.org/cayenne/browse/CAY-1124
> Project: Cayenne
> Issue Type: Bug
> Components: Cayenne Core Library
> Affects Versions: 3.0
> Environment: 3.0M3
> Reporter: Tore Halset
> Assignee: Tore Halset
> Fix For: 3.0
>
>
> I have gotten this one a couple of times on our production system running 3.0M3. As far as I see, this code has not been improved since 3.0M3, so I register this as a major bug.
> "TP-Processor5" daemon prio=10 tid=0x00002aab798c0400 nid=0xc2e waiting for monitor entry [0x0000000043e64000..0x000000
> 0043e66bb0]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at org.apache.cayenne.access.DataRowStore.getCachedSnapshot(DataRowStore.java:351)
> - waiting to lock <0x00002aaab91a5c40> (a org.apache.cayenne.access.DataRowStore)
> at org.apache.cayenne.access.DataDomainQueryAction.interceptOIDQuery(DataDomainQueryAction.java:174)
> at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:114)
> at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
> at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
> at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
> at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
> at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
> at org.apache.cayenne.DataObjectUtils.objectForQuery(DataObjectUtils.java:275)
> at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:261)
> at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:172)
> "DefaultQuartzScheduler_Worker-10" prio=10 tid=0x00002aab7afedc00 nid=0xc20 waiting for monitor entry [0x0000000043a62000..0x0000000043a62db0]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at org.apache.cayenne.access.DataRowStore.getCachedSnapshot(DataRowStore.java:351)
> - waiting to lock <0x00002aaab91a5c40> (a org.apache.cayenne.access.DataRowStore)
> at org.apache.cayenne.access.DataDomainQueryAction.interceptOIDQuery(DataDomainQueryAction.java:174)
> at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:114)
> at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
> at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
> at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
> at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
> at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
> at org.apache.cayenne.DataObjectUtils.objectForQuery(DataObjectUtils.java:275)
> at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:261)
> at org.apache.cayenne.DataObjectUtils.objectForPK(DataObjectUtils.java:172)
> "DefaultQuartzScheduler_Worker-3" prio=10 tid=0x00002aab7af02c00 nid=0xc19 waiting for monitor entry [0x000000004335b000..0x000000004335be30]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at org.apache.cayenne.access.DataRowStore.snapshotsUpdatedForObjects(DataRowStore.java:234)
> - waiting to lock <0x00002aaab91a5c40> (a org.apache.cayenne.access.DataRowStore)
> at org.apache.cayenne.access.ObjectResolver.objectsFromDataRows(ObjectResolver.java:125)
> at org.apache.cayenne.access.ObjectResolver.synchronizedObjectsFromDataRows(ObjectResolver.java:101)
> - locked <0x00002aaabb39bb70> (a org.apache.cayenne.access.ObjectStore)
> at org.apache.cayenne.access.DataDomainQueryAction.interceptObjectConversion(DataDomainQueryAction.java:460)
> at org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQueryAction.java:129)
> at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:740)
> at org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectContextQueryAction.java:296)
> at org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContextQueryAction.java:84)
> at org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1331)
> at org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1320)
>
-- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
This archive was generated by hypermail 2.0.0 : Wed Oct 15 2008 - 16:06:33 EDT