Re: Application Stops Responding - Strange Conditions
Re: Application Stops Responding - Strange Conditions
- Subject: Re: Application Stops Responding - Strange Conditions
- From: Hunter Hillegas <email@hidden>
- Date: Tue, 19 Apr 2005 21:43:36 -0700
Sure.
Dump follows below.
I should have mentioned that concurrent requests are on and we use
the MultiECLockManager to make sure our locking is done properly.
Thread dump:
Full thread dump Java HotSpot(TM) Client VM (1.4.2-50 mixed mode):
"WorkerThread15" prio=5 tid=0x0053e710 nid=0x1947c00 waiting for
monitor entry [f1499000..f1499ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053e310 nid=0x1a80200 waiting for
monitor entry [f1418000..f1418ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053df10 nid=0x1a7fe00 waiting for
monitor entry [f1397000..f1397ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053db20 nid=0x1ae7c00 waiting for
monitor entry [f1316000..f1316ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053d5e0 nid=0x1ae7800 waiting for
monitor entry [f1295000..f1295ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053d1e0 nid=0x1b2b000 waiting for
monitor entry [f1214000..f1214ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053ce90 nid=0x1b2ac00 waiting for
monitor entry [f1193000..f1193ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053c7e0 nid=0x1970c00 waiting for
monitor entry [f1112000..f1112ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053c3f0 nid=0x1970800 waiting for
monitor entry [f1091000..f1091ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053bda0 nid=0x18d6800 waiting for
monitor entry [f1010000..f1010ac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053b9a0 nid=0x18d6400 runnable
[f0f8f000..f0f8fac0]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked <0x65882fc8> (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)
"WorkerThread4" prio=5 tid=0x0053b5a0 nid=0x1abdc00 in Object.wait()
[f0f0c000..f0f0eac0]
at java.lang.Object.wait(Native Method)
- waiting on <0x65ba3578> (a
com.webobjects.appserver.WOSessionStore$TimeoutEntry)
at java.lang.Object.wait(Object.java:429)
at com.webobjects.appserver.WOSessionStore.checkOutSessionWithID
(WOSessionStore.java:207)
- locked <0x65ba3578> (a com.webobjects.appserver.WOSessionStore
$TimeoutEntry)
at com.webobjects.appserver.WOApplication.restoreSessionWithID
(WOApplication.java:1546)
at er.extensions.ERXApplication.restoreSessionWithID
(ERXApplication.java:835)
at com.webobjects.appserver.WOContext.session(WOContext.java:248)
at com.webobjects.appserver.WOComponent.session(WOComponent.java:
1176)
at Main.awake(Main.java:27)
at com.webobjects.appserver.WOComponent._awakeInContext
(WOComponent.java:862)
at com.webobjects.appserver.WOApplication.pageWithName
(WOApplication.java:1962)
at com.webobjects.appserver.WOComponent.pageWithName
(WOComponent.java:1200)
at ProductPage.chromeObject(ProductPage.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at KeyValueCodingProtectedAccessor.methodValue
(KeyValueCodingProtectedAccessor.java:54)
at com.webobjects.foundation.NSKeyValueCoding
$_MethodBinding.valueInObject(NSKeyValueCoding.java:1160)
at com.webobjects.foundation.NSKeyValueCoding
$DefaultImplementation.valueForKey(NSKeyValueCoding.java:1268)
at com.webobjects.appserver.WOComponent.valueForKey
(WOComponent.java:1539)
at com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey
(NSKeyValueCoding.java:498)
at com.webobjects.foundation.NSKeyValueCodingAdditions
$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:
216)
at com.webobjects.appserver.WOComponent.valueForKeyPath
(WOComponent.java:1600)
at com.webobjects.foundation.NSKeyValueCodingAdditions
$Utility.valueForKeyPath(NSKeyValueCodingAdditions.java:149)
at com.webobjects.foundation.NSKeyValueCodingAdditions
$DefaultImplementation.valueForKeyPath(NSKeyValueCodingAdditions.java:
217)
at com.webobjects.appserver.WOComponent.valueForKeyPath
(WOComponent.java:1600)
at
com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent
(WOKeyValueAssociation.java:46)
at com.webobjects.appserver.WOAssociation.booleanValueInComponent
(WOAssociation.java:278)
at com.webobjects.appserver._private.WOConditional.invokeAction
(WOConditional.java:47)
at
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction
(WODynamicGroup.java:101)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction
(WODynamicGroup.java:110)
at com.webobjects.appserver._private.WOConditional.invokeAction
(WOConditional.java:55)
at
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction
(WODynamicGroup.java:101)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction
(WODynamicGroup.java:110)
at er.extensions.ERXWORepetition.invokeAction
(ERXWORepetition.java:238)
at
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction
(WODynamicGroup.java:101)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction
(WODynamicGroup.java:110)
at com.webobjects.appserver._private.WOConditional.invokeAction
(WOConditional.java:55)
at
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction
(WODynamicGroup.java:101)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction
(WODynamicGroup.java:110)
at com.webobjects.appserver.WOComponent.invokeAction
(WOComponent.java:945)
at
com.webobjects.appserver._private.WOComponentReference.invokeAction
(WOComponentReference.java:104)
at
com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction
(WODynamicGroup.java:101)
at com.webobjects.appserver._private.WODynamicGroup.invokeAction
(WODynamicGroup.java:110)
at com.webobjects.appserver.WOComponent.invokeAction
(WOComponent.java:945)
at com.webobjects.appserver.WOSession.invokeAction
(WOSession.java:1166)
at com.webobjects.appserver.WOApplication.invokeAction
(WOApplication.java:1375)
at er.extensions.ERXApplication.invokeAction(ERXApplication.java:
592)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWit
hPreparedPage(WOComponentRequestHandler.java:196)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWit
hPreparedSession(WOComponentRequestHandler.java:287)
at
com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWit
hPreparedApplication(WOComponentRequestHandler.java:322)
at
com.webobjects.appserver._private.WOComponentRequestHandler._handleReque
st(WOComponentRequestHandler.java:358)
at
com.webobjects.appserver._private.WOComponentRequestHandler.handleReques
t(WOComponentRequestHandler.java:435)
at com.webobjects.appserver.WOApplication.dispatchRequest
(WOApplication.java:1306)
at er.extensions.ERXApplication.dispatchRequest
(ERXApplication.java:633)
at com.webobjects.appserver._private.WOWorkerThread.runOnce
(WOWorkerThread.java:173)
at com.webobjects.appserver._private.WOWorkerThread.run
(WOWorkerThread.java:254)
at java.lang.Thread.run(Thread.java:552)
"WorkerThread3" prio=5 tid=0x0053b1a0 nid=0x1975200 waiting for
monitor entry [f0e8d000..f0e8dac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053af80 nid=0x1b15c00 waiting for
monitor entry [f0e0c000..f0e0cac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053ad90 nid=0x18c0c00 waiting for
monitor entry [f0d8b000..f0d8bac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x0053ab20 nid=0x19a9400 waiting for
monitor entry [f0d0a000..f0d0aac0]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:351)
- waiting to lock <0x65882fc8> (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=0x00532cc0 nid=0x18eae00 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=0x00530c00 nid=0x193b000
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=0x00508440 nid=0x1817200
waiting on condition [0..0]
"Finalizer" daemon prio=8 tid=0x00506eb0 nid=0x1810800 in Object.wait
() [f0a04000..f0a04ac0]
at java.lang.Object.wait(Native Method)
- waiting on <0x65700128> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x65700128> (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=0x00506b80 nid=0x1803e00 in
Object.wait() [f0983000..f0983ac0]
at java.lang.Object.wait(Native Method)
- waiting on <0x65700190> (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 <0x65700190> (a java.lang.ref.Reference$Lock)
"main" prio=5 tid=0x005010d0 nid=0x1804600 in Object.wait()
[f07ff000..f08002c8]
at java.lang.Object.wait(Native Method)
- waiting on <0x6587d790> (a com.webobjects.appserver._WORunLoop)
at com.webobjects.appserver._WORunLoop._acceptInputBeforeDate
(_WORunLoop.java:217)
at com.webobjects.appserver._WORunLoop.runBeforeDate
(_WORunLoop.java:71)
- locked <0x6587d790> (a com.webobjects.appserver._WORunLoop)
at com.webobjects.appserver.WOApplication._runOnce
(WOApplication.java:775)
at com.webobjects.appserver.WOApplication.run(WOApplication.java:
900)
at er.extensions.ERXApplication.run(ERXApplication.java:273)
at com.webobjects.appserver.WOApplication.main
(WOApplication.java:324)
at er.extensions.ERXApplication.main(ERXApplication.java:46)
at Application.main(Application.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.webobjects._bootstrap.WOBootstrap.main(WOBootstrap.java:71)
"VM Thread" prio=5 tid=0x00506400 nid=0x1804e00 runnable
"VM Periodic Task Thread" prio=10 tid=0x00508380 nid=0x180c400
waiting on condition
"Exception Catcher Thread" prio=10 tid=0x00500680 nid=0x1804a00 runnable
On Apr 19, 2005, at 8:48 PM, Sacha Mallais wrote:
On Apr 19, 2005, at 8:34 pm, Hunter Hillegas wrote:
I am maintaining an existing shopping cart type application and
I've run into a problem I've been unable to fix... So far I have
spent several hours looking at it and done some Googling, etc...
No luck so far.
One of my tasks was to take some page crumb hyperlinks that used
component actions and convert them to direct actions.
The page crumbs work like this:
Each page inserts instances of the pages 'above' it in the
hierarchy into an NSMutableArray:
NSMutableArray crumbs = new NSMutableArray();
crumbs.add(pageWithName("Main"));
crumbs.add(pageWithName("Products"));
crumbs.add(this);
This array is traversed to create HTML that renders like this with
a WORepetition:
Home > Products > Certain Product
The components themselves have the direct action name inside of
them, fetched during awake(), and the WOHyperlink uses that String
as the 'directActionName'. These crumbs are inside a component
that is included on every page of this application.
The crumbs work perfectly but... there is a wrinkle.
Since changing the crumbs to use direct actions, when I am several
levels deep as in the above example, submitting a form via POST
from an action method causes the app to stop responding. Some
uninteresting logging messages still make it to stdout but no
pages will render, not even if I click a different DA URL from the
navigation bar in the Web app.
If I change the crumbs back to using components, all is well... I
have isolated it to that area but I don't know where to go from
here. It is fully repeatable and occurs every time.
I tried adding logging to the action method that submits the form
but nothing ever hit the log.
I tried overriding WOApplication.dispatchRequest() and logging
stuff out but what I got didn't help me (headers).
I tried a thread dump from the JVM but I didn't see anything that
looked suspicious (though this was my first thread dump - I could
have missed something).
Can you post the thread dump? The first thing that comes to mind
is deadlock.
sacha
--
Sacha Michel Mallais - 400 lb. chimp
Global Village Consulting Inc.: http://www.global-village.net/
The bird of paradise alights only upon the hand that does not grasp.
_______________________________________________
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