Deadlock
Deadlock
- Subject: Deadlock
- From: Timo Hoepfner <email@hidden>
- Date: Thu, 22 Jul 2004 19:58:50 +0200
Hi,
I have a problem with a deadlock in my application. I'm doing some work
on EOs in background threads. I'm quite sure everything is happening in
separate ECs and I'm using Project Wonder's ERXEC with auto locking, so
I hope the locking should be OK then.
Any idea what's going wrong here and what I can do against it? Any help
would be greatly appreciated!
Here's part of a thread dump. Both the Finalizer Thread and one Worker
Thread have acquired a lock on an NSRecursiveLock, and I have no clue
how to avoid such a situation.
"WorkerThread8" prio=5 tid=0x005570e0 nid=0x1d26400 in Object.wait()
[f1293000..f1295b20]
at java.lang.Object.wait(Native Method)
- waiting on <0x69caae0> (a com.webobjects.foundation.NSRecursiveLock)
at java.lang.Object.wait(Object.java:429)
at
com.webobjects.foundation.NSRecursiveLock.lock(NSRecursiveLock.java:72)
- locked <0x69caae0> (a com.webobjects.foundation.NSRecursiveLock)
at
com.webobjects.eoaccess.EODatabaseContext.lock(EODatabaseContext.java:
1974)
at
com.webobjects.eocontrol.EOObjectStoreCoordinator.addCooperatingObjectSt
ore(EOObjectStoreCoordinator.java:130)
at
com.webobjects.eoaccess.EODatabaseChannel.setCurrentEditingContext(EODat
abaseChannel.java:167)
at
com.webobjects.eoaccess.EODatabaseChannel._selectWithFetchSpecificationE
ditingContext(EODatabaseChannel.java:789)
at
com.webobjects.eoaccess.EODatabaseChannel.selectObjectsWithFetchSpecific
ation(EODatabaseChannel.java:216)
at
com.webobjects.eoaccess.EODatabaseContext._objectsWithFetchSpecification
EditingContext(EODatabaseContext.java:3196)
at
com.webobjects.eoaccess.EODatabaseContext.objectsWithFetchSpecification(
EODatabaseContext.java:3337)
at
com.webobjects.eoaccess.EODatabaseContext._fireFault(EODatabaseContext.j
ava:4357)
at
com.webobjects.eoaccess.EOAccessFaultHandler.completeInitializationOfObj
ect(EOAccessFaultHandler.java:85)
at
com.webobjects.eocontrol.EOCustomObject.willRead(EOCustomObject.java:
1189)
at
com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer$_Gener
icRecordBinding.valueInObject(_EOMutableKnownKeyDictionary.java:519)
at
com.webobjects.eocontrol.EOCustomObject.storedValueForKey(EOCustomObject
.java:1736)
at de.ddcom.storage.om._LogicalFile.state(_LogicalFile.java:65)
...
"Finalizer" daemon prio=8 tid=0x00506c60 nid=0x180da00 in Object.wait()
[f0a03000..f0a04b20]
at java.lang.Object.wait(Native Method)
- waiting on <0x69caae0> (a com.webobjects.foundation.NSRecursiveLock)
at java.lang.Object.wait(Object.java:429)
at
com.webobjects.foundation.NSRecursiveLock.lock(NSRecursiveLock.java:72)
- locked <0x69caae0> (a com.webobjects.foundation.NSRecursiveLock)
at
com.webobjects.eocontrol.EOObjectStoreCoordinator.lock(EOObjectStoreCoor
dinator.java:466)
at
com.webobjects.eocontrol.EOEditingContext.lockObjectStore(EOEditingConte
xt.java:4675)
at
com.webobjects.eocontrol.EOEditingContext._dispose(EOEditingContext.java
:1047)
at
com.webobjects.eocontrol.EOEditingContext.finalize(EOEditingContext.java
:1113)
at er.extensions.ERXEC.finalize(ERXEC.java:280)
at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
...
Thanks for your help,
Timo
_______________________________________________
webobjects-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/webobjects-dev
Do not post admin requests to the list. They will be ignored.