Re: Need help with deadlock in app
Re: Need help with deadlock in app
- Subject: Re: Need help with deadlock in app
- From: Anjo Krank <email@hidden>
- Date: Fri, 11 Jun 2010 21:55:21 +0200
You didn't unlock an EC.
From a previous mail:
> Dunno, but if you had
>
> er.extensions.ERXEC.traceOpenLocks=true
>
> and
>
> app.setStatisticsStore(new ERXStatisticsStore())
>
> it would tell you (at the expense of some processing time).
You might want to check the wonder-disc and wonder-cvs archives for "traceOpenLocks" or read the docs to ERXEC and ERXDirectAction.showOpenEditingContextLockTracesAction.
Cheers, Anjo
Am 11.06.2010 um 20:04 schrieb Lon Varscsak:
> I'm sure it's something I've done...I just don't know how to interpret
> what I'm seeing here in the jstack output (see below). Any help would
> be greatly appreciated.
>
> Thanks,
>
> Lon
>
> Here is the jstack stuff for just the deadlock (since the list
> wouldn't allow the full file):
>
> Found one Java-level deadlock:
> =============================
> "WorkerThread255":
> waiting for ownable synchronizer 0x00002aaab421aef0, (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync),
> which is held by "WorkerThread9"
> "WorkerThread9":
> waiting for ownable synchronizer 0x00002aaac0ecc338, (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync),
> which is held by "Finalizer"
> "Finalizer":
> waiting for ownable synchronizer 0x00002aaab421aef0, (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync),
> which is held by "WorkerThread9"
>
> Java stack information for the threads listed above:
> ===================================================
> "WorkerThread255":
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for <0x00002aaab421aef0> (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:773)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:806)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1136)
> at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
> at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
> at com.webobjects.eocontrol.EOObjectStoreCoordinator.lock(EOObjectStoreCoordinator.java:420)
> at com.webobjects.eocontrol.EOEditingContext.lockObjectStore(EOEditingContext.java:4666)
> at er.extensions.eof.ERXEC.lockObjectStore(ERXEC.java:715)
> at com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(EOEditingContext.java:4067)
> at er.extensions.eof.ERXEC.objectsWithFetchSpecification(ERXEC.java:1211)
> at com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(EOEditingContext.java:4444)
> at com.smarthealth.businesslogic.production._ValueSet.fetchValueSets(_ValueSet.java:199)
> at com.smarthealth.businesslogic.production._ValueSet.fetchValueSet(_ValueSet.java:219)
> at com.smarthealth.businesslogic.production._ValueSet.fetchRequiredValueSet(_ValueSet.java:251)
> at com.smarthealth.woapp.smartscrubs.Session.defaultSiteID(Session.java:83)
> at com.smarthealth.woapp.smartscrubs.Session.<init>(Session.java:73)
> at sun.reflect.GeneratedConstructorAccessor37.newInstance(Unknown Source)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
> at java.lang.Class.newInstance0(Class.java:372)
> at java.lang.Class.newInstance(Class.java:325)
> at com.webobjects.foundation._NSUtilities.instantiateObject(_NSUtilities.java:616)
> at com.webobjects.appserver.WOApplication.createSessionForRequest(WOApplication.java:1974)
> at er.extensions.appserver.ERXApplication.createSessionForRequest(ERXApplication.java:2170)
> at com.webobjects.appserver.WOApplication._initializeSessionInContext(WOApplication.java:2110)
> at com.webobjects.appserver.WOContext.session(WOContext.java:369)
> at com.webobjects.appserver.WOAction.session(WOAction.java:165)
> at com.smarthealth.woapp.smartscrubs.DirectAction.session(DirectAction.java:49)
> at com.smarthealth.woapp.smartscrubs.DirectAction.<init>(DirectAction.java:44)
> at sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
> at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
> at com.webobjects.foundation._NSUtilities.instantiateObject(_NSUtilities.java:614)
> at com.webobjects.appserver._private.WOActionRequestHandler.getActionInstance(WOActionRequestHandler.java:197)
> at com.webobjects.appserver._private.WOActionRequestHandler._handleRequest(WOActionRequestHandler.java:242)
> at com.webobjects.appserver._private.WOActionRequestHandler.handleRequest(WOActionRequestHandler.java:161)
> at er.extensions.appserver.ERXDirectActionRequestHandler.handleRequest(ERXDirectActionRequestHandler.java:124)
> at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
> at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1920)
> at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1885)
> at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
> at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)
> at java.lang.Thread.run(Thread.java:636)
> "WorkerThread9":
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for <0x00002aaac0ecc338> (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:773)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:806)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1136)
> at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
> at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
> at com.webobjects.eocontrol.EOEditingContext.lock(EOEditingContext.java:4617)
> at er.extensions.eof.ERXEC.lock(ERXEC.java:505)
> at er.extensions.eof.ERXEC.autoLock(ERXEC.java:627)
> at er.extensions.eof.ERXEC.globalIDForObject(ERXEC.java:844)
> at com.webobjects.eoaccess.EODatabaseContext._fireDeferredFaultWithSourceObject(EODatabaseContext.java:2370)
> at com.webobjects.eoaccess.EOAccessDeferredFaultHandler.createFaultForDeferredFault(EOAccessDeferredFaultHandler.java:49)
> at com.webobjects.eocontrol.EOCustomObject.willReadRelationship(EOCustomObject.java:1279)
> at er.extensions.eof.ERXGenericRecord.willReadRelationship(ERXGenericRecord.java:400)
> at com.webobjects.eocontrol.EOGenericRecord$_LazyDictionaryBinding.valueInObject(EOGenericRecord.java:280)
> at er.extensions.eof.ERXGenericRecord$TouchingBinding.valueInObject(ERXGenericRecord.java:201)
> at com.webobjects.eocontrol.EOCustomObject.storedValueForKey(EOCustomObject.java:1634)
> at com.smarthealth.businesslogic.marketing._PromotionMaster.promotionPresentationDetail(_PromotionMaster.java:226)
> at com.smarthealth.woapp.smartscrubs.components.AvailablePromotions.aPromotionCartMessage(AvailablePromotions.java:29)
> at sun.reflect.GeneratedMethodAccessor256.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:616)
> at com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1.methodValue(NSKeyValueCoding.java:636)
> at com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject(NSKeyValueCoding.java:1134)
> at com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1324)
> at com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1736)
> at com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValueCoding.java:447)
> at com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:212)
> at com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:1804)
> at com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent(WOKeyValueAssociation.java:50)
> at er.extensions.components._private.ERXWOString.appendToResponse(ERXWOString.java:67)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at er.extensions.components._private.ERXWORepetition.appendToResponse(ERXWORepetition.java:543)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at er.extensions.components.conditionals.ERXWOConditional.appendChildrenToResponse(ERXWOConditional.java:127)
> at er.extensions.components.conditionals.ERXWOConditional.appendToResponse(ERXWOConditional.java:121)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
> at com.webobjects.appserver.WOComponent.appendToResponse(WOComponent.java:1122)
> at er.extensions.components.ERXComponent.appendToResponse(ERXComponent.java:107)
> at er.extensions.components.ERXNonSynchronizingComponent.appendToResponse(ERXNonSynchronizingComponent.java:73)
> at com.webobjects.appserver._private.WOComponentReference.appendToResponse(WOComponentReference.java:135)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at er.extensions.components._private.ERXWOForm.appendChildrenToResponse(ERXWOForm.java:287)
> at er.extensions.components._private.ERXWOForm.appendToResponse(ERXWOForm.java:437)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
> at com.webobjects.appserver._private.WOComponentContent.appendToResponse(WOComponentContent.java:51)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
> at com.webobjects.appserver.WOComponent.appendToResponse(WOComponent.java:1122)
> at er.extensions.components.ERXComponent.appendToResponse(ERXComponent.java:107)
> at com.smarthealth.webobjects.SHWOComponent.appendToResponse(SHWOComponent.java:51)
> at com.webobjects.appserver._private.WOComponentReference.appendToResponse(WOComponentReference.java:135)
> at com.webobjects.appserver._private.WODynamicGroup.appendChildrenToResponse(WODynamicGroup.java:126)
> at com.webobjects.appserver._private.WODynamicGroup.appendToResponse(WODynamicGroup.java:136)
> at com.webobjects.appserver.WOComponent.appendToResponse(WOComponent.java:1122)
> at er.extensions.components.ERXComponent.appendToResponse(ERXComponent.java:107)
> at com.smarthealth.webobjects.SHWOComponent.appendToResponse(SHWOComponent.java:51)
> at com.webobjects.appserver.WOSession.appendToResponse(WOSession.java:1385)
> at er.extensions.appserver.ERXSession.appendToResponse(ERXSession.java:548)
> at com.smarthealth.woapp.smartscrubs.Session.appendToResponse(Session.java:371)
> at com.webobjects.appserver.WOApplication.appendToResponse(WOApplication.java:1794)
> at er.extensions.appserver.ERXApplication.appendToResponse(ERXApplication.java:1822)
> at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedPage(WOComponentRequestHandler.java:242)
> at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:298)
> at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:332)
> at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
> at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:445)
> at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1687)
> at er.extensions.appserver.ERXApplication.dispatchRequestImmediately(ERXApplication.java:1920)
> at er.extensions.appserver.ERXApplication.dispatchRequest(ERXApplication.java:1885)
> at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:144)
> at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:226)
> at java.lang.Thread.run(Thread.java:636)
> "Finalizer":
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for <0x00002aaab421aef0> (a
> java.util.concurrent.locks.ReentrantLock$NonfairSync)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:773)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:806)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1136)
> at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
> at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
> at com.webobjects.eocontrol.EOObjectStoreCoordinator.lock(EOObjectStoreCoordinator.java:420)
> at com.webobjects.eocontrol.EOEditingContext.lockObjectStore(EOEditingContext.java:4666)
> at er.extensions.eof.ERXEC.lockObjectStore(ERXEC.java:715)
> at com.webobjects.eocontrol.EOEditingContext.editingContextDidForgetObjectWithGlobalID(EOEditingContext.java:3881)
> at er.extensions.eof.ERXEC.editingContextDidForgetObjectWithGlobalID(ERXEC.java:1159)
> at com.webobjects.eocontrol.EOEditingContext._forgetObject(EOEditingContext.java:1571)
> at com.webobjects.eocontrol.EOEditingContext._dispose(EOEditingContext.java:1183)
> at com.webobjects.eocontrol.EOEditingContext.finalize(EOEditingContext.java:1239)
> at er.extensions.eof.ERXEC.finalize(ERXEC.java:701)
> at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
> at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:101)
> at java.lang.ref.Finalizer.access$100(Finalizer.java:32)
> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:178)
>
> Found 1 deadlock.
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden