• 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: Bad DirectAction freezes instance...
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bad DirectAction freezes instance...


  • Subject: Re: Bad DirectAction freezes instance...
  • From: James Cicenia <email@hidden>
  • Date: Wed, 4 Jan 2006 16:01:02 -0600

ok --


Here is the thread dump.

Full thread dump Java HotSpot(TM) Client VM (1.4.2-54 mixed mode):

"WorkerThread15" prio=5 tid=0x0054dd30 nid=0x187b000 waiting for monitor entry [f1499000..f1499ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread14" prio=5 tid=0x0054db10 nid=0x187ac00 waiting for monitor entry [f1418000..f1418ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread13" prio=5 tid=0x0054d8f0 nid=0x187a800 waiting for monitor entry [f1397000..f1397ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread12" prio=5 tid=0x0054d6e0 nid=0x18baa00 waiting for monitor entry [f1316000..f1316ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread11" prio=5 tid=0x0054cd50 nid=0x18ba600 waiting for monitor entry [f1295000..f1295ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread10" prio=5 tid=0x0054cb30 nid=0x18ba200 waiting for monitor entry [f1214000..f1214ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread9" prio=5 tid=0x0054c920 nid=0x1b9e400 waiting for monitor entry [f1193000..f1193ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread8" prio=5 tid=0x0054c280 nid=0x1b9e000 waiting for monitor entry [f1112000..f1112ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread7" prio=5 tid=0x0054b690 nid=0x1b9dc00 waiting for monitor entry [f1091000..f1091ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread6" prio=5 tid=0x0054b470 nid=0x1b8fc00 runnable [f1010000..f1010ac0]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread5" prio=5 tid=0x0054b250 nid=0x1b8f800 runnable [f0f8f000..f0f8fac0]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.webobjects.appserver._private.WOHttpIO.refillInputBuffer(WOHttpIO.java:131)
at com.webobjects.appserver._private.WOHttpIO.readLine(WOHttpIO.java:187)
at com.webobjects.appserver._private.WOHttpIO.readRequestFromSocket(WOHttpIO.java:279)
at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:79)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:254)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread4" prio=5 tid=0x0054b060 nid=0x1a46e00 runnable [f0f0e000..f0f0eac0]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.webobjects.appserver._private.WOHttpIO.refillInputBuffer(WOHttpIO.java:131)
at com.webobjects.appserver._private.WOHttpIO.readLine(WOHttpIO.java:187)
at com.webobjects.appserver._private.WOHttpIO.readRequestFromSocket(WOHttpIO.java:279)
at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:79)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:254)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread3" prio=5 tid=0x0054ac20 nid=0x1a46a00 waiting for monitor entry [f0e8d000..f0e8dac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread2" prio=5 tid=0x0054aa00 nid=0x189ea00 waiting for monitor entry [f0e0c000..f0e0cac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread1" prio=5 tid=0x0054a870 nid=0x189e600 waiting for monitor entry [f0d8b000..f0d8bac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"WorkerThread0" prio=5 tid=0x0054a710 nid=0x19ec200 waiting for monitor entry [f0d0a000..f0d0aac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x6581b410> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:238)
at java.lang.Thread.run(Thread.java:552)

"Thread-0" daemon prio=5 tid=0x005266e0 nid=0x1897400 waiting on condition [f0c89000..f0c89ac0]
at java.lang.Thread.sleep(Native Method)
at com.webobjects.appserver.WOApplication$_LifebeatThread.run(WOApplication.java:1233)

"Session Timeout Thread" daemon prio=5 tid=0x00525680 nid=0x1985800 waiting on condition [f0c08000..f0c08ac0]
at java.lang.Thread.sleep(Native Method)
at com.webobjects.appserver.WOSessionStore$_SessionTimeoutManager.run(WOSessionStore.java:110)
at java.lang.Thread.run(Thread.java:552)

"Signal Dispatcher" daemon prio=10 tid=0x00508030 nid=0x1817800 waiting on condition [0..0]

"Finalizer" daemon prio=8 tid=0x00506ae0 nid=0x1811a00 in Object.wait() [f0a04000..f0a04ac0]
at java.lang.Object.wait(Native Method)
- waiting on <0x65723050> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x65723050> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x005067b0 nid=0x1803e00 in Object.wait() [f0983000..f0983ac0]
at java.lang.Object.wait(Native Method)
- waiting on <0x657230b8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
- locked <0x657230b8> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00500c30 nid=0x1804c00 in Object.wait() [f07ff000..f08002c8]
at java.lang.Object.wait(Native Method)
- waiting on <0x65812088> (a com.webobjects.appserver._WORunLoop)
at com.webobjects.appserver._WORunLoop._acceptInputBeforeDate(_WORunLoop.java:217)
at com.webobjects.appserver._WORunLoop.runBeforeDate(_WORunLoop.java:71)
- locked <0x65812088> (a com.webobjects.appserver._WORunLoop)
at com.webobjects.appserver.WOApplication._runOnce(WOApplication.java:775)
at com.webobjects.appserver.WOApplication.run(WOApplication.java:900)
at com.webobjects.appserver.WOApplication.main(WOApplication.java:324)
at Application.main(Application.java:38)

"VM Thread" prio=5 tid=0x00506030 nid=0x1806000 runnable 

"VM Periodic Task Thread" prio=10 tid=0x00507f40 nid=0x1817400 waiting on condition 
"Exception Catcher Thread" prio=10 tid=0x00500dc0 nid=0x1805c00 runnable 



thoughts?



On Jan 4, 2006, at 3:35 PM, Chuck Hill wrote:


On Jan 4, 2006, at 1:08 PM, James Cicenia wrote:

Hmmm... where is performAction?

WODirectAction, you might have to manually override it in DirectAction.


I have the following in Application:

    public WOResponse handleActionRequestError(WORequest aRequest, Exception exception, String reason, WORequestHandler aHandler, String actionClassName, String actionName, Class actionClass, WOAction actionInstance) {
        if (actionInstance != null) {
        if(actionInstance.context().hasSession()) actionInstance.context().session().terminate();
    com.hb.pages.Home home = (com.hb.pages.Home) pageWithName("Home", actionInstance.context());
    return home.generateResponse();
        } else {
            return handleException(exception, null);
        }
    }

this traps the error and sends them back to the homepage, however, it freezes the instance.


The first thing that I would do is to follow the advice that Gary Teter just posted and get a thread dump after it deadlocks.  That should point to where the actual problem is.

Chuck


On Jan 4, 2006, at 2:20 PM, Chuck Hill wrote:


On Jan 4, 2006, at 12:14 PM, James Cicenia wrote:

Anyone have any obvious ideas why a bad directAction would freeze an instance?

I noticed this from a bad link going to a non-existent DirectAction.


It might vary by version :-(, but in at least some versions, if performAction throws and there is a session, the session will not get checked in which deadlocks that session.  If the app is not dispatching requests concurrently, that will deadlock the entire app.

The solution to that one is to wrap performAction in a try..catch block and pass the exception off to Application.handleException.


-- 
Coming in 2006 - an introduction to web applications using WebObjects and Xcode     http://www.global-village.net/wointro

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






-- 
Coming in 2006 - an introduction to web applications using WebObjects and Xcode     http://www.global-village.net/wointro

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: Bad DirectAction freezes instance...
      • From: Chuck Hill <email@hidden>
References: 
 >Bad DirectAction freezes instance... (From: James Cicenia <email@hidden>)
 >Re: Bad DirectAction freezes instance... (From: Chuck Hill <email@hidden>)
 >Re: Bad DirectAction freezes instance... (From: James Cicenia <email@hidden>)
 >Re: Bad DirectAction freezes instance... (From: Chuck Hill <email@hidden>)

  • Prev by Date: Re: Frameworks and versioning
  • Next by Date: Re: Frameworks and versioning
  • Previous by thread: Re: Bad DirectAction freezes instance...
  • Next by thread: Re: Bad DirectAction freezes instance...
  • Index(es):
    • Date
    • Thread