• 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: Advise on deadlock
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Advise on deadlock


  • Subject: Re: Advise on deadlock
  • From: Chuck Hill <email@hidden>
  • Date: Thu, 10 Jun 2010 13:34:19 -0700


On Jun 10, 2010, at 1:31 PM, Ricardo J. Parada wrote:


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.

At the end of the Request - Response loop, before the response is returned to the browser.





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










-- 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


  • Follow-Ups:
    • Re: Advise on deadlock
      • From: "Lawson, Ben" <email@hidden>
References: 
 >Re: Advise on deadlock (From: Chuck Hill <email@hidden>)
 >Re: Advise on deadlock (From: "Ricardo J. Parada" <email@hidden>)

  • Prev by Date: Re: Advise on deadlock
  • Next by Date: Re: ERXPrefixQualifierTraversal usage example (@daveeed)
  • Previous by thread: Re: Advise on deadlock
  • Next by thread: Re: Advise on deadlock
  • Index(es):
    • Date
    • Thread