• 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
Strange WOServletAdaptor hanging problem
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

  • Follow-Ups:
    • Re: Strange WOServletAdaptor hanging problem
      • From: Chuck Hill <email@hidden>
  • Prev by Date: Problems with Stale Data
  • Next by Date: Re: locations of DST information
  • Previous by thread: Re: Problems with Stale Data
  • Next by thread: Re: Strange WOServletAdaptor hanging problem
  • Index(es):
    • Date
    • Thread