Hi, I analyzed my thread dump and log files from yesterdays's crash a bit. Here the flow of events:
First probably the deadlock occured. The following entry in logfiles is an indication for it: Mar 14, 2006 8:53:03 PM org.apache.tomcat.util.threads.ThreadPool logFull SEVERE: All threads (750) are currently busy, waiting. Increase maxThreads (750) or check the servlet status After that the series of "can't/shouldn't happen exceptions" fills the logfiles: ApplicationDispatcher[]: Servlet.service() for servlet jsp threw exception javax.servlet.jsp.JspException: No bean found under attribute key result StandardWrapperValve[controller]: Servlet.service() for servlet controller threw exception javax.servlet.jsp.JspException: No bean found under attribute key result javax.servlet.jsp.JspException: No bean found under attribute key result [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Connection reset ApplicationDispatcher[]: Servlet.service() for servlet jsp threw exception javax.servlet.jsp.JspException: No bean found under attribute key result [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Connection reset ApplicationDispatcher[]: Servlet.service() for servlet jsp threw exception [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Connection reset [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Connection reset ApplicationDispatcher[]: Servlet.service() for servlet jsp threw exception [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Connection reset [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Broken pipe [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Connection reset [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Broken pipe [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Connection reset ApplicationDispatcher[]: Servlet.service() for servlet jsp threw exception javax.servlet.jsp.JspException: No bean found under attribute key userRights StandardWrapperValve[controller]: Servlet.service() for servlet controller threw exception javax.servlet.jsp.JspException: No bean found under attribute key userRights javax.servlet.jsp.JspException: No bean found under attribute key userRights [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Connection reset ApplicationDispatcher[]: Servlet.service() for servlet jsp threw exception java.lang.IllegalStateException: getAttribute: Session already invalidated ApplicationDispatcher[]: Servlet.service() for servlet controller threw exception java.lang.IllegalStateException: getAttribute: Session already invalidated StandardWrapperValve[index]: Servlet.service() for servlet index threw exception java.lang.IllegalStateException: getAttribute: Session already invalidated java.lang.IllegalStateException: getAttribute: Session already invalidated [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=500, location=/down/500.html] ClientAbortException: java.net.SocketException: Connection reset Note: all three beans "result", "user" and "userRights" can't be missing in the jsp, because the are added to the request in the preprocessing phase or immediately before the forward to the jsp happens. We also never see any of the above exception in catalina.out for normally running server. Some time later: ApplicationDispatcher[]: Servlet.service() for servlet jsp threw exception java.lang.OutOfMemoryError: Java heap space StandardWrapperValve[controller]: Servlet.service() for servlet controller threw exception java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError: Java heap space [EMAIL PROTECTED]: Exception Processing ErrorPage[errorCode=404, location=/down/404.html] ClientAbortException: java.net.SocketException: Connection reset the out of memory error is repeated 41 times. After all the cpu load gone down to zero and the server stoped responding (no wonder without free threads or memory). The thread dump (can be submitted if someone is interested) contains 678 threads waiting on 9 JspServletWrapper Objects ( The nine looks like: "http-8580-Processor16777" daemon prio=1 tid=0xc40b5890 nid=0x236f waiting for monitor entry [0xc13fe000..0xc13ff840] at org.apache.naming.resources.ProxyDirContext.cacheLoad(ProxyDirContext.java:1552) - waiting to lock <0x61655498> (a org.apache.naming.resources.ResourceCache) at org.apache.naming.resources.ProxyDirContext.cacheLookup(ProxyDirContext.java:1398) at org.apache.naming.resources.ProxyDirContext.lookup(ProxyDirContext.java:279) at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:301) at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:569) at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:492) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:509) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:274) - locked <0x61df86c0> (a org.apache.jasper.servlet.JspServletWrapper) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) the 678 looks like: "http-8580-Processor17757" daemon prio=1 tid=0x0a448538 nid=0x2779 waiting for monitor entry [0xd30fe000..0xd30ff740] at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:270) - waiting to lock <0x61df86c0> (a org.apache.jasper.servlet.JspServletWrapper) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:703) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:589) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966) at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:581) The 678 threads aren't waiting for a single lock all, they are separated in groups, the largest group are 200 threads, the smallest 23. I can't find a locked <0x61655498> entry nowhere. But I should be able to see it to recognize the thread causing the deadlock, shouldn't I? Any ideas, anyone? regards Leon --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]