Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 328308 - Deadlock between DatabaseValueHolder.getValue() and ConcurrencyManager.acquire()
Summary: Deadlock between DatabaseValueHolder.getValue() and ConcurrencyManager.acquire()
Status: CLOSED DUPLICATE of bug 321473
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Eclipselink (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-20 21:45 EDT by Bob Cotton CLA
Modified: 2022-06-09 10:10 EDT (History)
2 users (show)

See Also:


Attachments
Thread Dumps (739.77 KB, text/plain)
2010-10-20 21:45 EDT, Bob Cotton CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bob Cotton CLA 2010-10-20 21:45:27 EDT
Created attachment 181352 [details]
Thread Dumps

[EL Info]: 2010-10-19 13:31:22.326--ServerSession(1139598886)--EclipseLink, version: Eclipse Persistence Services - 2.1.2.v20100904-r8147

In production, for 7 of the last 10 days, we've encountered stuck threads. In most cases the blocked threads hold a lock on a QueryBasedValueHolder. The stuck thread(s) look like this:


"301917118@qtp-1115192682-1128" prio=10 tid=0x00002aaad42aa000 nid=0x4d9e in Object.wait() [0x000000004b268000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000006cd7a7d08> (a org.eclipse.persistence.internal.helper.ConcurrencyManager)
        at java.lang.Object.wait(Object.java:485)
        at org.eclipse.persistence.internal.helper.ConcurrencyManager.acquire(ConcurrencyManager.java:93)
        - locked <0x00000006cd7a7d08> (a org.eclipse.persistence.internal.helper.ConcurrencyManager)
        at org.eclipse.persistence.internal.identitymaps.CacheKey.acquire(CacheKey.java:113)
        at org.eclipse.persistence.internal.identitymaps.AbstractIdentityMap.acquireLock(AbstractIdentityMap.java:107)
        at org.eclipse.persistence.internal.identitymaps.IdentityMapManager.acquireLock(IdentityMapManager.java:127)
        at org.eclipse.persistence.internal.sessions.IdentityMapAccessor.acquireLock(IdentityMapAccessor.java:92)
        at org.eclipse.persistence.internal.sessions.IdentityMapAccessor.acquireLock(IdentityMapAccessor.java:83)
        at org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:699)


We were told that this problem was a manifestation of EL Bug 321473. So we deployed 2.1.2.v20100904-r8147, but it is still happening.
Comment 1 Bob Cotton CLA 2010-10-20 21:48:43 EDT
Also: Oracle Bug 10158824
Comment 2 Tom Ware CLA 2010-11-01 11:39:01 EDT
Closing as duplicate - same as Oracle bug listed below.

*** This bug has been marked as a duplicate of bug 321473 ***
Comment 3 Tom Ware CLA 2010-11-01 11:51:47 EDT
Note: this may also be related to bug 324459 - also fixed.

I have marked the duplicate on the basis of the Oracle bug you have listed.  Please feel free to add more information or to change the bug this is a duplicate of if what I have done is incorrect.
Comment 4 Eclipse Webmaster CLA 2022-06-09 10:10:54 EDT
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink