Re: Advise on deadlock
Re: Advise on deadlock
- Subject: Re: Advise on deadlock
- From: "Ricardo J. Parada" <email@hidden>
- Date: Thu, 10 Jun 2010 16:31:50 -0400
On Jun 10, 2010, at 4:03 PM, Chuck Hill wrote:
> Moving this to the correct list.
>
Thanks.
>
> On Jun 10, 2010, at 12:54 PM, Ricardo J. Parada wrote:
>
>>
>> We have one app that we just turned on concurrent request handling and we seem to get a deadlock. But I'm not sure why or what to do to fix it. :-)
>> This happens logging in to the application.
>>
>> I'm using WO 5.4.3 and Wonder revision 10715.
>>
>> Here's a stack trace of each thread (it looks like the deadlock is between WorkerThread13 and WorkerThread14:
>
> No, both of those threads are waiting for a session that other threads have checked out (possibly the same thread). Either that thread is takinga long time or the session did not get checked back in.
>
When does the session get checked back in? I'm not familiar with that aspect of WO.
> Do you have any code the Session methods awake, sleep, or terminate?
>
I looked and the code in awake() is just setting a couple of i-vars. It doesn't seem to be doing much. But I'll look more carefully.
>
> Chuck
>
>
>>
>>
>> Jun 10 10:14:34 PatientPortionPricer[2013] FATAL er.extensions.statistics.ERXStatisticsStore - Request is taking too long, possible deadlock: 300294 ms
>>
>> Request Thread Name: ERXStopWatchTimer
>>
>> Java2D Disposer:
>> Thread[Java2D Disposer,10,main]:
>> at java.lang.Object.wait(Native Method)
>> at java.lang.ref.ReferenceQueue.remove(Unknown Source)
>> at java.lang.ref.ReferenceQueue.remove(Unknown Source)
>> at sun.java2d.Disposer.run(Unknown Source)
>> at java.lang.Thread.run(Unknown Source)
>> WorkerThread13:
>> Thread[WorkerThread13,5,main]:
>> at java.lang.Object.wait(Native Method)
>> at java.lang.Object.wait(Unknown Source)
>> at com.webobjects.appserver.WOSessionStore.checkOutSessionWithID(WOSessionStore.java:191)
>> at com.webobjects.appserver.WOApplication.restoreSessionWithID(WOApplication.java:1913)
>> at er.extensions.appserver.ERXApplication.restoreSessionWithID(ERXApplication.java:2215)
>> at com.mpv.webapp.patientportionpricer.Application.restoreSessionWithID(Application.java:46)
>> at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:324)
>> at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
>> at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:445)
>> at er.ajax.AjaxRequestHandler.handleRequest(AjaxRequestHandler.java:17)
>> 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(Unknown Source)
>> Session Timeout Thread:
>> Thread[Session Timeout Thread,5,main]:
>> at java.lang.Thread.sleep(Native Method)
>> at com.webobjects.appserver.WOSessionStore$_SessionTimeoutManager.run(WOSessionStore.java:98)
>> at java.lang.Thread.run(Unknown Source)
>> WorkerThread14:
>> Thread[WorkerThread14,5,main]:
>> at java.lang.Object.wait(Native Method)
>> at java.lang.Object.wait(Unknown Source)
>> at com.webobjects.appserver.WOSessionStore.checkOutSessionWithID(WOSessionStore.java:191)
>> at com.webobjects.appserver.WOApplication.restoreSessionWithID(WOApplication.java:1913)
>> at er.extensions.appserver.ERXApplication.restoreSessionWithID(ERXApplication.java:2215)
>> at com.mpv.webapp.patientportionpricer.Application.restoreSessionWithID(Application.java:46)
>> at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:324)
>> at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:369)
>> at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:445)
>> at er.ajax.AjaxRequestHandler.handleRequest(AjaxRequestHandler.java:17)
>> 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)
>>
>>
>> Thanks,
>> Ricardo
>>
>
> --
> 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