• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Let's play "Spot the Deadlock" ;-)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Let's play "Spot the Deadlock" ;-)


  • Subject: Re: Let's play "Spot the Deadlock" ;-)
  • From: Chuck Hill <email@hidden>
  • Date: Wed, 7 Oct 2009 18:15:46 -0700


On Oct 7, 2009, at 5:09 PM, Miguel Arroz wrote:

Hi!

Before going to Niue, specially because it's a bit shaky there right now, you may add some code that detects OSC locks.

We have the following on our WOComponent's subclass form where all the pages inherit from. I don't know if it compiles or works on 5.4, but it surely does on 5.3.

public WOActionResults invokeAction(WORequest worequest, WOContext wocontext){
WOActionResults results = super.invokeAction( worequest, wocontext );

if(_isPage()){
NSRecursiveLock oscLock = ((EOObjectStoreCoordinator )EOEditingContext.defaultParentObjectStore())._lock();
if( oscLock._verifyLock() ){

Note that this return true only if the OSC is locked and the lock owner is the current thread.



LOG.error( "LOCKED OSC left after invoking action in component: " + this.getClass().getName() );
LOG.error( "Context " + wocontext.toString() );

/*while( oscLock._verifyLock() ) {
LOG.error( "Forcing OSC unlock" );
oscLock.unlock();
}
LOG.error( "OSC unlocked" ); */
}
}
return results;

}


What this does is checking if the OSC is released after invokeAction is finished. If not, something screwed up in between.

The commented part is the "I have no freaking idea of what's going on, so whatever happened, at least unlock that damn thing so all the users don't get stuck" switch. Luckily we never were desperate enough to feel the need to uncomment that, so I can't be sure if it works fine, as it was never tested in production. The uncommented part is working in production right now, and it's a dream come true. :)

Miguel showed me this a while ago (Paulo Andrade's code, I think). I've been meaning to try this in Application.dispatchRequest(). It seems safe enough, but testing would be good.



Chuck



On 2009/10/07, at 21:06, Kieran Kelleher wrote:

Here is an interesting deadlock I got today. I know some of you like to comment on deadlocks ...... and I certainly appreciate it! BTW, I have concurrent off and Session deadlock detection on on that instance, so I am guessing this was an EOF lock. This app uses Wonder, ERXEC, safe autolocking, and Wonder EOF stack synchronization within instances, however there is only one common EOF stack for normal requests and EOF stacks are created occasionally for intensive background tasks.

Any comments on possible root cause and or troubleshooting tips?

I had a gazillion of stacks that were the same as the two under REMOVED STACKS below, so I have removed all those for readability:

REMOVED STACKS (I removed these ones that appearred multiple time from the jstack output for readability):
Thread t@56835: (state = BLOCKED)
- java.net.PlainSocketImpl.accept(java.net.SocketImpl) @bci=0, line=382 (Compiled frame; information may be imprecise)
- java.net.ServerSocket.implAccept(java.net.Socket) @bci=50, line=450 (Interpreted frame)
- java.net.ServerSocket.accept() @bci=48, line=421 (Interpreted frame)
- com.webobjects.appserver._private.WOWorkerThread.run() @bci=26, line=238 (Compiled frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)


Thread t@72451: (state = BLOCKED)
- com .webobjects .appserver ._private .WOComponentRequestHandler .handleRequest(com.webobjects.appserver.WORequest) @bci=21, line=432 (Interpreted frame)
- com .webobjects .appserver .WOApplication.dispatchRequest(com.webobjects.appserver.WORequest) @bci=41, line=1306 (Compiled frame)
- er .extensions .appserver .ERXApplication .dispatchRequestImmediately(com.webobjects.appserver.WORequest) @bci=74, line=1887 (Compiled frame)
- er .extensions .appserver .ERXApplication.dispatchRequest(com.webobjects.appserver.WORequest) @bci=13, line=1852 (Compiled frame)
- com.webobjects.appserver._private.WOWorkerThread.runOnce() @bci=729, line=173 (Compiled frame)
- com.webobjects.appserver._private.WOWorkerThread.run() @bci=129, line=254 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)


Thread t@75779: (state = BLOCKED)
- com .webobjects .appserver ._private .WOActionRequestHandler .handleRequest(com.webobjects.appserver.WORequest) @bci=54, line=142 (Interpreted frame)
- er .extensions .appserver .ERXDirectActionRequestHandler .handleRequest(com.webobjects.appserver.WORequest) @bci=222, line=124 (Interpreted frame)
- com .webobjects .appserver .WOApplication.dispatchRequest(com.webobjects.appserver.WORequest) @bci=41, line=1306 (Compiled frame)
- er .extensions .appserver .ERXApplication .dispatchRequestImmediately(com.webobjects.appserver.WORequest) @bci=74, line=1887 (Compiled frame)
- er .extensions .appserver .ERXApplication.dispatchRequest(com.webobjects.appserver.WORequest) @bci=13, line=1852 (Compiled frame)
- com.webobjects.appserver._private.WOWorkerThread.runOnce() @bci=729, line=173 (Compiled frame)
- com.webobjects.appserver._private.WOWorkerThread.run() @bci=129, line=254 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



REMAINING STACKS (this is everything else):

Thread t@72195: (state = IN_NATIVE)
- com .webobjects .appserver .WOApplication.dispatchRequest(com.webobjects.appserver.WORequest) @bci=9, line=1298 (Compiled frame; information may be imprecise)
- er .extensions .appserver .ERXApplication .dispatchRequestImmediately(com.webobjects.appserver.WORequest) @bci=74, line=1887 (Compiled frame)
- er .extensions .appserver .ERXApplication.dispatchRequest(com.webobjects.appserver.WORequest) @bci=13, line=1852 (Compiled frame)
- com.webobjects.appserver._private.WOWorkerThread.runOnce() @bci=729, line=173 (Compiled frame)
- com.webobjects.appserver._private.WOWorkerThread.run() @bci=129, line=254 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



Thread t@76035: (state = IN_NATIVE)
- java.net.PlainSocketImpl.socketAccept(java.net.SocketImpl) @bci=0 (Compiled frame; information may be imprecise)
- java.net.PlainSocketImpl.accept(java.net.SocketImpl) @bci=7, line=384 (Compiled frame)
- java.net.ServerSocket.implAccept(java.net.Socket) @bci=50, line=450 (Interpreted frame)
- java.net.ServerSocket.accept() @bci=48, line=421 (Interpreted frame)
- com.webobjects.appserver._private.WOWorkerThread.run() @bci=26, line=238 (Compiled frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



Thread t@76291: (state = BLOCKED)
- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
- java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
- java.util.concurrent.locks.AbstractQueuedSynchronizer $ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
- java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=359 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor.getTask() @bci=47, line=470 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=674 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



Thread t@76547: (state = BLOCKED)
- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
- java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
- java.util.concurrent.locks.AbstractQueuedSynchronizer $ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
- java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=359 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor.getTask() @bci=47, line=470 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=674 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



Thread t@76803: (state = BLOCKED)
- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
- java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
- java.util.concurrent.locks.AbstractQueuedSynchronizer $ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
- java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=359 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor.getTask() @bci=47, line=470 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=674 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



Thread t@77059: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=120 (Compiled frame)
- java.lang.ref.ReferenceQueue.remove() @bci=2, line=136 (Compiled frame)
- org.apache.commons.httpclient.MultiThreadedHttpConnectionManager $ReferenceQueueThread.run() @bci=10, line=1122 (Interpreted frame)



Thread t@77315: (state = BLOCKED)
- java.lang.Thread.sleep(long) @bci=0 (Compiled frame; information may be imprecise)
- au.com.forward.threads.ThreadReturn$1.run() @bci=3, line=391 (Compiled frame)



Thread t@77571: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- org .apache.commons.httpclient.util.IdleConnectionTimeoutThread.run() @bci=49, line=108 (Interpreted frame)



Thread t@77827: (state = BLOCKED)
- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
- java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
- java.util.concurrent.locks.AbstractQueuedSynchronizer $ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
- java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=359 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor.getTask() @bci=47, line=470 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=674 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



Thread t@78339: (state = BLOCKED)
- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
- java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
- java.util.concurrent.locks.AbstractQueuedSynchronizer $ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
- java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=359 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor.getTask() @bci=47, line=470 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=674 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



Thread t@78595: (state = BLOCKED)
- sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
- java.util.concurrent.locks.LockSupport.park() @bci=5, line=118 (Interpreted frame)
- java.util.concurrent.locks.AbstractQueuedSynchronizer $ConditionObject.await() @bci=41, line=1841 (Interpreted frame)
- java.util.concurrent.DelayQueue.take() @bci=28, line=131 (Interpreted frame)
- java.util.concurrent.ScheduledThreadPoolExecutor $DelayedWorkQueue.take() @bci=4, line=504 (Interpreted frame)
- java.util.concurrent.ScheduledThreadPoolExecutor $DelayedWorkQueue.take() @bci=1, line=497 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor.getTask() @bci=47, line=470 (Interpreted frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=674 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



Thread t@78851: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- java.lang.Object.wait() @bci=2, line=474 (Interpreted frame)
- java.util.TimerThread.mainLoop() @bci=28, line=483 (Interpreted frame)
- java.util.TimerThread.run() @bci=1, line=462 (Interpreted frame)



Thread t@79107: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- er.javamail.ERMailSender.run() @bci=26, line=276 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)




Thread t@81411: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be imprecise)
- java.lang.Object.wait() @bci=2, line=474 (Compiled frame)
- com.webobjects.eoaccess.EODatabaseContext.lock() @bci=56, line=1973 (Compiled frame)
- com .webobjects .eocontrol .EOObjectStoreCoordinator .addCooperatingObjectStore (com.webobjects.eocontrol.EOCooperatingObjectStore) @bci=5, line=130 (Compiled frame)
- com .webobjects .eoaccess .EODatabaseChannel .setCurrentEditingContext (com.webobjects.eocontrol.EOEditingContext) @bci=34, line=166 (Compiled frame)
- com .webobjects .eoaccess .EODatabaseChannel ._selectWithFetchSpecificationEditingContext (com.webobjects.eocontrol.EOFetchSpecification, com.webobjects.eocontrol.EOEditingContext) @bci=158, line=788 (Compiled frame)
- com .webobjects .eoaccess .EODatabaseChannel .selectObjectsWithFetchSpecification (com.webobjects.eocontrol.EOFetchSpecification, com.webobjects.eocontrol.EOEditingContext) @bci=64, line=215 (Compiled frame)
- com .webobjects .eoaccess .EODatabaseContext ._objectsWithFetchSpecificationEditingContext (com.webobjects.eocontrol.EOFetchSpecification, com.webobjects.eocontrol.EOEditingContext) @bci=219, line=3205 (Compiled frame)
- com .webobjects .eoaccess .EODatabaseContext .objectsWithFetchSpecification (com.webobjects.eocontrol.EOFetchSpecification, com.webobjects.eocontrol.EOEditingContext) @bci=34, line=3346 (Compiled frame)
- com .webobjects .eocontrol .EOObjectStoreCoordinator .objectsWithFetchSpecification (com.webobjects.eocontrol.EOFetchSpecification, com.webobjects.eocontrol.EOEditingContext) @bci=97, line=539 (Compiled frame)
- com .webobjects .eocontrol .EOEditingContext .objectsWithFetchSpecification (com.webobjects.eocontrol.EOFetchSpecification, com.webobjects.eocontrol.EOEditingContext) @bci=79, line=4114 (Compiled frame)
- er .extensions .eof .ERXEC .objectsWithFetchSpecification (com.webobjects.eocontrol.EOFetchSpecification, com.webobjects.eocontrol.EOEditingContext) @bci=68, line=1189 (Compiled frame)
- com .webobjects .eocontrol .EOEditingContext .objectsWithFetchSpecification (com.webobjects.eocontrol.EOFetchSpecification) @bci=3, line=4500 (Compiled frame)
- wk.cheetah.eof.ProgramBehaviour $ Utilities.hasAllTemplatesApprovedAndValid(wk.cheetah.eof.CTProgram) @bci=5, line=130 (Compiled frame)
- wk.cheetah.eof.ProgramBehaviour $Utilities.doesRequireAttention(wk.cheetah.eof.CTProgram) @bci=15, line=120 (Compiled frame)
- wk.cheetah.eof.JobsiteRadiusProgramBehaviour.doesRequireAttention() @bci=4, line=148 (Compiled frame)
- wk.cheetah.eof.CTProgram.doesRequireAttention() @bci=4, line=425 (Compiled frame)
- sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=6, line=25 (Compiled frame)
- java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) @bci=111, line=585 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCoding$ValueAccessor $1.methodValue(java.lang.Object, java.lang.reflect.Method) @bci=3, line=684 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCoding $_MethodBinding.valueInObject(java.lang.Object) @bci=9, line=1160 (Compiled frame)
- com .webobjects.eocontrol.EOCustomObject.valueForKey(java.lang.String) @bci=14, line=1559 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCoding $Utility.valueForKey(java.lang.Object, java.lang.String) @bci=26, line=498 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCodingAdditions $DefaultImplementation.valueForKeyPath(java.lang.Object, java.lang.String) @bci=19, line=212 (Compiled frame)
- com .webobjects .eocontrol.EOCustomObject.valueForKeyPath(java.lang.String) @bci=2, line=1675 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCodingAdditions $Utility.valueForKeyPath(java.lang.Object, java.lang.String) @bci=26, line=149 (Compiled frame)
- com .webobjects .eocontrol.EOKeyValueQualifier.evaluateWithObject(java.lang.Object) @bci=5, line=131 (Compiled frame)
- com .webobjects .eocontrol .EOQualifier .filteredArrayWithQualifier(com.webobjects.foundation.NSArray, com.webobjects.eocontrol.EOQualifier) @bci=55, line=635 (Compiled frame)
- wk.cheetah.eof.CTLocation.requiresAttentionPrograms() @bci=22, line=376 (Compiled frame)
- sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=6, line=25 (Compiled frame)
- java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) @bci=111, line=585 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCoding$ValueAccessor $1.methodValue(java.lang.Object, java.lang.reflect.Method) @bci=3, line=684 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCoding $_MethodBinding.valueInObject(java.lang.Object) @bci=9, line=1160 (Compiled frame)
- com .webobjects.eocontrol.EOCustomObject.valueForKey(java.lang.String) @bci=14, line=1559 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCoding $Utility.valueForKey(java.lang.Object, java.lang.String) @bci=26, line=498 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCodingAdditions $DefaultImplementation.valueForKeyPath(java.lang.Object, java.lang.String) @bci=32, line=216 (Compiled frame)
- com .webobjects .eocontrol.EOCustomObject.valueForKeyPath(java.lang.String) @bci=2, line=1675 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCodingAdditions $Utility.valueForKeyPath(java.lang.Object, java.lang.String) @bci=26, line=149 (Compiled frame)
- com.webobjects.foundation.NSArray $_Operator._operationValue(java.lang.Object, java.lang.String) @bci=17, line=79 (Compiled frame)
- com.webobjects.foundation.NSArray $_SumNumberOperator.compute(com.webobjects.foundation.NSArray, java.lang.String) @bci=3, line=46 (Compiled frame)
- com .webobjects .foundation.NSArray._valueForKeyPathWithOperator(java.lang.String) @bci=71, line=744 (Compiled frame)
- com.webobjects.foundation.NSArray.valueForKeyPath(java.lang.String) @bci=16, line=778 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCodingAdditions $Utility.valueForKeyPath(java.lang.Object, java.lang.String) @bci=26, line=149 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCodingAdditions $DefaultImplementation.valueForKeyPath(java.lang.Object, java.lang.String) @bci=52, line=217 (Compiled frame)
- com .webobjects .eocontrol.EOCustomObject.valueForKeyPath(java.lang.String) @bci=2, line=1675 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCodingAdditions $Utility.valueForKeyPath(java.lang.Object, java.lang.String) @bci=26, line=149 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCodingAdditions $DefaultImplementation.valueForKeyPath(java.lang.Object, java.lang.String) @bci=52, line=217 (Compiled frame)
- com .webobjects.appserver.WOComponent.valueForKeyPath(java.lang.String) @bci=2, line=1600 (Compiled frame)
- com .webobjects.appserver.WOComponent.valueForBinding(java.lang.String) @bci=22, line=735 (Compiled frame)
- sun.reflect.GeneratedMethodAccessor261.invoke(java.lang.Object, java.lang.Object[]) @bci=36 (Compiled frame)
- sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=6, line=25 (Compiled frame)
- java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) @bci=111, line=585 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCoding$ValueAccessor $1.methodValue(java.lang.Object, java.lang.reflect.Method) @bci=3, line=684 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCoding $_MethodBinding.valueInObject(java.lang.Object) @bci=9, line=1160 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCoding $DefaultImplementation.valueForKey(java.lang.Object, java.lang.String) @bci=34, line=1268 (Compiled frame)
- com.webobjects.appserver.WOComponent.valueForKey(java.lang.String) @bci=2, line=1539 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCoding $Utility.valueForKey(java.lang.Object, java.lang.String) @bci=26, line=498 (Compiled frame)
- com.webobjects.foundation.NSKeyValueCodingAdditions $DefaultImplementation.valueForKeyPath(java.lang.Object, java.lang.String) @bci=19, line=212 (Compiled frame)
- com .webobjects.appserver.WOComponent.valueForKeyPath(java.lang.String) @bci=2, line=1600 (Compiled frame)
- com .webobjects .appserver ._private .WOHTMLDynamicElement ._appendAttributesFromAssociationsToResponse (com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext, com.webobjects.foundation.NSDictionary) @bci=60, line=317 (Compiled frame)
- com .webobjects .appserver ._private .WOGenericElement .appendAttributesToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=161, line=158 (Compiled frame)
- com .webobjects .appserver ._private .WOGenericElement .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=60, line=181 (Compiled frame)
- com .webobjects .appserver ._private .WOGenericContainer .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=3, line=29 (Compiled frame)
- com .webobjects .appserver .WOComponent.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=56, line=992 (Compiled frame)
- er .extensions .components .ERXComponent.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=26, line=107 (Compiled frame)
- wk .webobjects .appserver .WKAbstractComponent .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=30, line=457 (Compiled frame)
- com .webobjects .appserver ._private .WOComponentReference .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=11, line=111 (Compiled frame)
- com .webobjects .appserver ._private .WODynamicGroup .appendChildrenToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=46, line=121 (Compiled frame)
- er .extensions .components ._private .ERXWORepetition .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=90, line=508 (Compiled frame)
- com .webobjects .appserver ._private .WODynamicGroup .appendChildrenToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=46, line=121 (Compiled frame)
- com .webobjects .appserver ._private .WODynamicGroup .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=3, line=130 (Compiled frame)
- com .webobjects .appserver ._private .WOComponentContent .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=36, line=43 (Compiled frame)
- com .webobjects .appserver ._private .WODynamicGroup .appendChildrenToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=46, line=121 (Compiled frame)
- com .webobjects .appserver ._private .WOGenericContainer .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=15, line=32 (Compiled frame)
- com .webobjects .appserver ._private .WODynamicGroup .appendChildrenToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=46, line=121 (Compiled frame)
- com .webobjects .appserver ._private .WODynamicGroup .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=3, line=130 (Compiled frame)
- com .webobjects .appserver .WOComponent.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=56, line=992 (Compiled frame)
- er .extensions .components .ERXComponent.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=26, line=107 (Compiled frame)
- wk .webobjects .appserver .WKAbstractComponent .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=30, line=457 (Compiled frame)
- wk .cheetah .wocomponents .PageWrapper.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=505, line=247 (Interpreted frame)
- com .webobjects .appserver ._private .WOComponentReference .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=11, line=111 (Compiled frame)
- com .webobjects .appserver ._private .WODynamicGroup .appendChildrenToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=46, line=121 (Compiled frame)
- com .webobjects .appserver ._private .WODynamicGroup .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=3, line=130 (Compiled frame)
- com .webobjects .appserver .WOComponent.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=56, line=992 (Compiled frame)
- er .extensions .components .ERXComponent.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=26, line=107 (Compiled frame)
- wk .webobjects .appserver .WKAbstractComponent .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=30, line=457 (Compiled frame)
- wk .cheetah .wocomponents .Customers.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=7, line=349 (Interpreted frame)
- com .webobjects .appserver .WOSession.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=30, line=1200 (Interpreted frame)
- er .extensions .appserver .ERXSession.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=11, line=540 (Interpreted frame)
- wk .webobjects .appserver .WKSession.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=33, line=176 (Interpreted frame)
- wk .cheetah .Session.appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=205, line=657 (Interpreted frame)
- com .webobjects .appserver .WOApplication .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=100, line=1418 (Interpreted frame)
- er .extensions .appserver .ERXApplication .appendToResponse(com.webobjects.appserver.WOResponse, com.webobjects.appserver.WOContext) @bci=3, line=1789 (Interpreted frame)
- com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedPage(com.webobjects.appserver.WOComponent, com.webobjects.appserver.WOSession, com.webobjects.appserver.WOContext, com.webobjects.foundation.NSDictionary) @bci=218, line=230 (Interpreted frame)
- com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedSession(com.webobjects.appserver.WOSession, com.webobjects.appserver.WOContext, com.webobjects.foundation.NSDictionary) @bci=186, line=287 (Interpreted frame)
- com .webobjects .appserver ._private .WOComponentRequestHandler ._dispatchWithPreparedApplication (com.webobjects.appserver.WOApplication, com.webobjects.appserver.WOContext, com.webobjects.foundation.NSDictionary) @bci=84, line=322 (Interpreted frame)
- com .webobjects .appserver ._private .WOComponentRequestHandler ._handleRequest(com.webobjects.appserver.WORequest) @bci=109, line=358 (Interpreted frame)
- com .webobjects .appserver ._private .WOComponentRequestHandler .handleRequest(com.webobjects.appserver.WORequest) @bci=23, line=432 (Interpreted frame)
- com .webobjects .appserver .WOApplication.dispatchRequest(com.webobjects.appserver.WORequest) @bci=41, line=1306 (Compiled frame)
- er .extensions .appserver .ERXApplication .dispatchRequestImmediately(com.webobjects.appserver.WORequest) @bci=74, line=1887 (Compiled frame)
- er .extensions .appserver .ERXApplication.dispatchRequest(com.webobjects.appserver.WORequest) @bci=13, line=1852 (Compiled frame)
- com.webobjects.appserver._private.WOWorkerThread.runOnce() @bci=729, line=173 (Compiled frame)
- com.webobjects.appserver._private.WOWorkerThread.run() @bci=129, line=254 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)





Thread t@84483: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be imprecise)
- java.lang.Object.wait() @bci=2, line=474 (Compiled frame)
- er.extensions.eof.ERXObjectStoreCoordinatorSynchronizer $ProcessChangesQueue.run() @bci=31, line=573 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



Thread t@84739: (state = BLOCKED)
- java.lang.Thread.sleep(long) @bci=0 (Interpreted frame)
- com.webobjects.appserver.WOApplication$_LifebeatThread.run() @bci=233, line=1233 (Interpreted frame)



Thread t@84995: (state = BLOCKED)
- java.lang.Thread.sleep(long) @bci=0 (Interpreted frame)
- com.webobjects.appserver.WOSessionStore $_SessionTimeoutManager.run() @bci=16, line=110 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=613 (Interpreted frame)



Thread t@85507: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be imprecise)
- java.lang.Object.wait() @bci=2, line=474 (Compiled frame)
- com.webobjects.eocontrol.EOObjectStoreCoordinator.lock() @bci=4, line=466 (Compiled frame)
- com.webobjects.eocontrol.EOEditingContext.lockObjectStore() @bci=41, line=4735 (Compiled frame)
- er.extensions.eof.ERXEC.lockObjectStore() @bci=7, line=668 (Compiled frame)
- com.webobjects.eocontrol.EOEditingContext._dispose(boolean) @bci=181, line=1110 (Compiled frame)
- com.webobjects.eocontrol.EOEditingContext.finalize() @bci=9, line=1178 (Interpreted frame)
- er.extensions.eof.ERXEC.finalize() @bci=62, line=653 (Interpreted frame)
- java.lang.ref.Finalizer.runFinalizer() @bci=45, line=83 (Compiled frame)
- java.lang.ref.Finalizer.access$100(java.lang.ref.Finalizer) @bci=1, line=14 (Compiled frame)
- java.lang.ref.Finalizer$FinalizerThread.run() @bci=11, line=160 (Interpreted frame)



Thread t@85763: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Compiled frame; information may be imprecise)
- java.lang.Object.wait() @bci=2, line=474 (Compiled frame)



Thread t@86019: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- com .webobjects .appserver ._WORunLoop ._acceptInputBeforeDate(com.webobjects.foundation.NSTimestamp) @bci=98, line=217 (Interpreted frame)
- com .webobjects .appserver ._WORunLoop.runBeforeDate(com.webobjects.foundation.NSTimestamp) @bci=39, line=71 (Interpreted frame)
- com.webobjects.appserver.WOApplication._runOnce() @bci=17, line=775 (Interpreted frame)
- com.webobjects.appserver.WOApplication.run() @bci=99, line=900 (Interpreted frame)
- er.extensions.appserver.ERXApplication.run() @bci=292, line=1225 (Interpreted frame)
- com.webobjects.appserver.WOApplication.main(java.lang.String[], java.lang.Class) @bci=24, line=324 (Interpreted frame)
- er.extensions.appserver.ERXApplication.main(java.lang.String[], java.lang.Class) @bci=6, line=716 (Interpreted frame)
- wk.cheetah.Application.main(java.lang.String[]) @bci=3, line=88 (Interpreted frame)
- sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=87, line=39 (Interpreted frame)
- sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=6, line=25 (Interpreted frame)
- java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) @bci=111, line=585 (Interpreted frame)
- com.webobjects._bootstrap.WOBootstrap.main(java.lang.String[]) @bci=118, line=87 (Interpreted frame)



_______________________________________________ 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

-- Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects








_______________________________________________
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


References: 
 >Let's play "Spot the Deadlock" ;-) (From: Kieran Kelleher <email@hidden>)
 >Re: Let's play "Spot the Deadlock" ;-) (From: Miguel Arroz <email@hidden>)

  • Prev by Date: Re: Let's play "Spot the Deadlock" ;-)
  • Next by Date: Re: Let's play "Spot the Deadlock" ;-)
  • Previous by thread: Re: Let's play "Spot the Deadlock" ;-)
  • Next by thread: Re: Let's play "Spot the Deadlock" ;-)
  • Index(es):
    • Date
    • Thread