Yeah, it looks like the attachments were removed by the list
server. I'm
using Derby. Here are the stack traces for the two threads
involved in
the deadlock:
3XMTHREADINFO "main" (TID:0x0015EC00, sys_thread_t:0x00358470,
state:B, native ID:0x000017B4) prio=5
4XESTACKTRACE at
com/ibm/oti/vm/BootstrapClassLoader.loadClass
(BootstrapClassLoader.java:63(Compiled
Code))
4XESTACKTRACE at
java/lang/ClassLoader.loadClass(ClassLoader.java:587(Compiled Code))
4XESTACKTRACE at
java/lang/ClassLoader.loadClass(ClassLoader.java:587(Compiled Code))
4XESTACKTRACE at
sun/misc/Launcher$AppClassLoader.loadClass(Launcher.java:327(Compiled
Code))
4XESTACKTRACE at
java/lang/ClassLoader.loadClass(ClassLoader.java:563(Compiled Code))
4XESTACKTRACE at java/lang/ClassLoader.defineClassImpl(Native
Method)
4XESTACKTRACE at
java/lang/ClassLoader.defineClass(ClassLoader.java:223(Compiled Code))
4XESTACKTRACE at
java/security/SecureClassLoader.defineClass(SecureClassLoader.java:
148(Compiled
Code))
4XESTACKTRACE at
java/net/URLClassLoader.defineClass(URLClassLoader.java:556(Compiled
Code))
4XESTACKTRACE at
java/net/URLClassLoader.access$400(URLClassLoader.java:119(Compiled
Code))
4XESTACKTRACE at
java/net/URLClassLoader$ClassFinder.run(URLClassLoader.java:957
(Compiled
Code))
4XESTACKTRACE at
java/security/AccessController.doPrivileged(AccessController.java:275)
4XESTACKTRACE at
java/net/URLClassLoader.findClass(URLClassLoader.java:487(Compiled
Code))
4XESTACKTRACE at
java/lang/ClassLoader.loadClass(ClassLoader.java:606(Compiled Code))
4XESTACKTRACE at
sun/misc/Launcher$AppClassLoader.loadClass(Launcher.java:327(Compiled
Code))
4XESTACKTRACE at
java/lang/ClassLoader.loadClass(ClassLoader.java:563(Compiled Code))
4XESTACKTRACE at
org/apache/openjpa/jdbc/sql/SQLFactoryImpl.newSelect
(SQLFactoryImpl.java:40)
4XESTACKTRACE at
org/apache/openjpa/jdbc/kernel/
JDBCStoreManager.getInitializeStateResult(JDBCStoreManager.java:367)
4XESTACKTRACE at
org/apache/openjpa/jdbc/kernel/JDBCStoreManager.initializeState
(JDBCStoreManager.java:296)
4XESTACKTRACE at
org/apache/openjpa/jdbc/kernel/JDBCStoreManager.initialize
(JDBCStoreManager.java:252)
4XESTACKTRACE at
org/apache/openjpa/kernel/DelegatingStoreManager.initialize
(DelegatingStoreManager.java:108)
4XESTACKTRACE at
org/apache/openjpa/kernel/ROPStoreManager.initialize
(ROPStoreManager.java:54)
4XESTACKTRACE at
org/apache/openjpa/kernel/BrokerImpl.initialize(BrokerImpl.java:870)
4XESTACKTRACE at
org/apache/openjpa/kernel/BrokerImpl.find(BrokerImpl.java:828)
4XESTACKTRACE at
org/apache/openjpa/kernel/BrokerImpl.find(BrokerImpl.java:743)
4XESTACKTRACE at
org/apache/openjpa/kernel/DelegatingBroker.find
(DelegatingBroker.java:169)
4XESTACKTRACE at
org/apache/openjpa/persistence/EntityManagerImpl.find
(EntityManagerImpl.java:320)
4XESTACKTRACE at
play/TestInsertAndFind.test001(TestInsertAndFind.java:48)
4XESTACKTRACE at
sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method)
4XESTACKTRACE at
sun/reflect/NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:64)
4XESTACKTRACE at
sun/reflect/DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
4XESTACKTRACE at java/lang/reflect/Method.invoke
(Method.java:615)
4XESTACKTRACE at
org/junit/internal/runners/TestMethodRunner.executeMethodBody
(TestMethodRunner.java:99)
4XESTACKTRACE at
org/junit/internal/runners/TestMethodRunner.runUnprotected
(TestMethodRunner.java:81)
4XESTACKTRACE at
org/junit/internal/runners/BeforeAndAfterRunner.runProtected
(BeforeAndAfterRunner.java:34)
4XESTACKTRACE at
org/junit/internal/runners/TestMethodRunner.runMethod
(TestMethodRunner.java:75)
4XESTACKTRACE at
org/junit/internal/runners/TestMethodRunner.run
(TestMethodRunner.java:45)
4XESTACKTRACE at
org/junit/internal/runners/TestClassMethodsRunner.invokeTestMethod
(TestClassMethodsRunner.java:71)
4XESTACKTRACE at
org/junit/internal/runners/TestClassMethodsRunner.run
(TestClassMethodsRunner.java:35)
4XESTACKTRACE at
org/junit/internal/runners/TestClassRunner$1.runUnprotected
(TestClassRunner.java:42)
4XESTACKTRACE at
org/junit/internal/runners/BeforeAndAfterRunner.runProtected
(BeforeAndAfterRunner.java:34)
4XESTACKTRACE at
org/junit/internal/runners/TestClassRunner.run(TestClassRunner.java:
52)
4XESTACKTRACE at
org/eclipse/jdt/internal/junit4/runner/JUnit4TestReference.run
(JUnit4TestReference.java:38)
4XESTACKTRACE at
org/eclipse/jdt/internal/junit/runner/TestExecution.run
(TestExecution.java:38)
4XESTACKTRACE at
org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.runTests
(RemoteTestRunner.java:460)
4XESTACKTRACE at
org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.runTests
(RemoteTestRunner.java:673)
4XESTACKTRACE at
org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.run
(RemoteTestRunner.java:386)
4XESTACKTRACE at
org/eclipse/jdt/internal/junit/runner/RemoteTestRunner.main
(RemoteTestRunner.java:196)
3XMTHREADINFO "Finalizer thread" (TID:0x41B36200,
sys_thread_t:0x41DE154C, state:B, native ID:0x00000FF8) prio=5
4XESTACKTRACE at
java/lang/ClassLoader.loadClass(ClassLoader.java:563(Compiled Code))
4XESTACKTRACE at java/lang/Class.forNameImpl(Native Method)
4XESTACKTRACE at java/lang/Class.forName(Class.java:160
(Compiled
Code))
4XESTACKTRACE at
org/apache/openjpa/lib/util/TemporaryClassLoader.loadClass
(TemporaryClassLoader.java:55(Compiled
Code))
4XESTACKTRACE at
org/apache/openjpa/lib/util/TemporaryClassLoader.loadClass
(TemporaryClassLoader.java:40(Compiled
Code))
4XESTACKTRACE at java/lang/Class.forNameImpl(Native Method)
4XESTACKTRACE at java/lang/Class.forName(Class.java:160
(Compiled
Code))
4XESTACKTRACE at
org/apache/openjpa/enhance/PCClassFileTransformer.needsEnhance
(PCClassFileTransformer.java:171(Compiled
Code))
4XESTACKTRACE at
org/apache/openjpa/enhance/PCClassFileTransformer.transform
(PCClassFileTransformer.java:117(Compiled
Code))
4XESTACKTRACE at
sun/instrument/TransformerManager.transform(TransformerManager.java:
141(Compiled
Code))
4XESTACKTRACE at
sun/instrument/InstrumentationImpl.transform
(InstrumentationImpl.java:174(Compiled
Code))
4XESTACKTRACE at com/ibm/oti/vm/VM.findClassOrNull(Native
Method)
4XESTACKTRACE at
com/ibm/oti/vm/BootstrapClassLoader.loadClass
(BootstrapClassLoader.java:64(Compiled
Code))
4XESTACKTRACE at
java/lang/ref/ReferenceQueue.enqueue(ReferenceQueue.java:125)
4XESTACKTRACE at
java/lang/ref/Reference.enqueueImpl(Reference.java:93)
--
Best regards,
Vlad Tatavu
Provisioning & Orchestration Development, IBM Tivoli Toronto
[EMAIL PROTECTED]
Office (905) 413-3853
"Marc Prud'hommeaux" <[EMAIL PROTECTED]>
Sent by: "Marc Prud'hommeaux" <[EMAIL PROTECTED]>
08/01/2007 03:17 PM
Please respond to
open-jpa-dev@incubator.apache.org
To
open-jpa-dev@incubator.apache.org
cc
Subject
Re: Deadlock when insert in t1 and find in t2
Vlad-
I didn't get any attachments in that last message (perhaps they were
stripped by the list server).
It might be interesting the see the java stack trace parts of the JVM
dump, in case that might shed light on the situation.
Also, what database are you using? It could be that the deadlock is
happening somewhere in the JDBC driver code as well...
On Jan 8, 2007, at 11:20 AM, Vlad Tatavu wrote:
My test program runs in a standalone env, local transactions. Here
are the files:
--
Best regards,
Vlad Tatavu
Provisioning & Orchestration Development, IBM Tivoli Toronto
[EMAIL PROTECTED]
Office (905) 413-3853
"Kevin Sutter" <[EMAIL PROTECTED]>
08/01/2007 02:01 PM
Please respond to
open-jpa-dev@incubator.apache.org
To
open-jpa-dev@incubator.apache.org
cc
Subject
Re: Deadlock when insert in t1 and find in t2
Hi Vlad,
Can you provide a bit more information? Are you running in a managed
environment or a standalone environment? Are these JTA
transactions or
Local transactions? What does your test program look like? What
about the
Entities? Maybe you can attach them to your next reply?
I see that you are using the J9 JVM. I haven't tried that yet.
I've been
using the "standard" IBM JVM 1.5 at SR3 (or above). I doubt that
this would
make a different, but it might be useful to try this JVM as a test.
What you are describing is basic JPA functionality, so there must be
something unique with your application or environment.
Thanks,
Kevin
On 1/8/07, Vlad Tatavu <[EMAIL PROTECTED]> wrote:
I have a simple test program that uses OpenJPA 0.9.6 to insert an
object
into a db in one transaction (t1) and retrieve it in another
transaction
(t2). The program hangs in 30-50% of the executions right before
the call
to entitymanager.find() (used to retrieve the object in t2). By
looking
at the JVM dump, I can see the following deadlock:
1LKDEADLOCK Deadlock detected !!!
NULL ---------------------
NULL
2LKDEADLOCKTHR Thread "main" (0x0015EC00)
3LKDEADLOCKWTR is waiting for:
4LKDEADLOCKMON sys_mon_t:0x41E40548 infl_mon_t: 0x41E40588:
4LKDEADLOCKOBJ java/lang/[EMAIL PROTECTED]/00D4101C:
3LKDEADLOCKOWN which is owned by:
2LKDEADLOCKTHR Thread "Finalizer thread" (0x41B36200)
3LKDEADLOCKWTR which is waiting for:
4LKDEADLOCKMON sys_mon_t:0x0035CD38 infl_mon_t: 0x0035CD78:
4LKDEADLOCKOBJ sun/misc/Launcher
[EMAIL PROTECTED]/00D4E5BC:
3LKDEADLOCKOWN which is owned by:
2LKDEADLOCKTHR Thread "main" (0x0015EC00)
I'm using IBM JVM 5 (J2RE 5.0 IBM J9 2.3 Windows XP x86-32 build
j9vmwi3223-20061001) and OpenJPA Runtime Enhancement.
Is this a known issue?
I can provide the test program, persistence.xml, etc.
--
Best regards,
Vlad Tatavu
Provisioning & Orchestration Development, IBM Tivoli Toronto
[EMAIL PROTECTED]
Office (905) 413-3853