Strange WOServletAdaptor hanging problem
Strange WOServletAdaptor hanging problem
- Subject: Strange WOServletAdaptor hanging problem
- From: Dov Rosenberg <email@hidden>
- Date: Mon, 28 Jan 2008 15:23:34 -0500
- Thread-topic: Strange WOServletAdaptor hanging problem
Title: Strange WOServletAdaptor hanging problem
We have a WO app that we deploy as a servlet into Tomcat. We have had occasions where Tomcat will hang causing our application to become inaccessible. I think I have narrowed the problem down an issue that is logged when this occurs.
Exception occurred while handling request:
com.webobjects.appserver.WOPageNotFoundException: <.../Application>: Unable to create page 'OR3Vn2AxtWCKZtdwx7mAJ0/apps/infocenter/resources/images/Revoke-button.gif'.
<http-8226-Processor221> com.webobjects.appserver.WOPageNotFoundException: <../Application>: Unable to create page 'OR3Vn2AxtWCKZtdwx7mAJ0/apps/infocenter/resources/images/Revoke-button.gif'.
at com.webobjects.appserver.WOApplication.pageWithName(WOApplication.java:1968)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedSession(WOComponentRequestHandler.java:273)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:322)
at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:358)
at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:435)
at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1306)
at com.webobjects.jspservlet._WOApplicationWrapper.servletDispatchRequest(_WOApplicationWrapper.java:118)
at com.webobjects.jspservlet.WOServletAdaptor._handleRequest(WOServletAdaptor.java:678)
at com.webobjects.jspservlet.WOServletAdaptor.doGet(WOServletAdaptor.java:660)
......
Tomcat shows the stuck threads urls as http://<host>:<port>/MyApp/WebObjects/MyApp.woa/wo/OR3Vn2AxtWCKZtdwx7mAJ0/apps/infocenter/resources/images/Revoke-button.gif.
This resource was set as a relative URL in a piece of content that was cut and pasted into our tool and was being previewed. The browser saw the relative URL ( /apps/infocenter/resources/images/Revoke-button.gif) and appended it to the end of the WO app http://<host>:<port>/MyApp/WebObjects/MyApp.woa/wo. This sent the request thru the WebObjects servlet. This ended up causing the WOSession to be locked up trying to resolve the path to the resource. The Session could not be checked out from the WOSessionStore, eventually causing all of the new incoming requests to pile up and kill both Tomcat and our WO application. The thread dump when the problem occurred looked like:
...
at java.lang.Object.wait(Native Method)
- waiting on <0x8c89e608> (a com.webobjects.appserver.WOSessionStore$TimeoutEntry)
at java.lang.Object.wait(Unknown Source)
at com.webobjects.appserver.WOSessionStore.checkOutSessionWithID(WOSessionStore.java:207)
- locked <0x8c89e608> (a com.webobjects.appserver.WOSessionStore$TimeoutEntry)
at com.webobjects.appserver.WOApplication.restoreSessionWithID(WOApplication.java:1546)
at com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWithPreparedApplication(WOComponentRequestHandler.java:314)
at com.webobjects.appserver._private.WOComponentRequestHandler._handleRequest(WOComponentRequestHandler.java:358)
at com.webobjects.appserver._private.WOComponentRequestHandler.handleRequest(WOComponentRequestHandler.java:435)
at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1306)
at com.webobjects.jspservlet._WOApplicationWrapper.servletDispatchRequest(_WOApplicationWrapper.java:118)
at com.webobjects.jspservlet.WOServletAdaptor._handleRequest(WOServletAdaptor.java:678)
...
It looks like the only way to fix the problem is to filter unknown requests from making it to the WO adaptor in the first place. Seems like the WOServletAdaptor should be a more robust in dealing with non IM requests that are coming in. The problem is with at least WO 5.2 and higher.
Any thoughts or feedback are welcome.
Dov Rosenberg
_______________________________________________
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