Folks, We're getting intermittent problems where one tomcat thread hangs for up to 10 minutes writing JSP pages to a socket. We think the socket is an HTTP TCP socket. The stack trace from a thread dump for the hung thread is below.
This happens multiple times per day at seemingly random intervals. We have not been able to reproduce this reliably and has been happening for as long as we have data (6+ months), so doesn't seem to be tied to a specific recent change. We run Struts 1.35, Tomcat 5.5.9, Linux 2.4.21 (Redhat) on four boxes behind a Netscaler load balancer. All boxes exhibit the same problem at different random intervals. Has anyone seen this problem? If so, do you know of a fix? -adam Thread 18114: (state = IN_NATIVE) - java.net.SocketOutputStream.socketWrite0(java.io.FileDescriptor, byte[], int, int) @bci=0 (Compiled frame; information may be imprecise) - java.net.SocketOutputStream.socketWrite (byte[], int, int) @bci=44, line=92 (Compiled frame) - java.net.SocketOutputStream.write(byte[], int, int) @bci=4, line=136 (Compiled frame) - org.apache.coyote.Response.action(org.apache.coyote.ActionCode, java.lang.Object ) @bci=31, line=182 (Compiled frame) - java.io.PrintWriter.flush() @bci=15, line=270 (Compiled frame) - org.apache.struts.tiles.taglib.InsertTag.doEndTag() @bci=18, line=462 (Interpreted frame) - org.apache.jsp.pages.SearchNarrowBy_jsp._jspx_meth_tiles_insert_0 ( javax.servlet.jsp.PageContext) @bci=50, line=724 (Interpreted frame) - org.apache.jsp.pages.SearchNarrowBy_jsp._jspService( javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=286, line=120 (Compiled frame) - org.apache.jasper.runtime.HttpJspBase.service( javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=3, line=97 (Interpreted frame) - javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest , javax.servlet.ServletResponse) @bci=30, line=802 (Interpreted frame) - org.apache.jasper.servlet.JspServletWrapper.service( javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean) @bci=186, line=322 (Compiled frame) - org.apache.jasper.servlet.JspServlet.serviceJspFile( javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable, boolean) @bci=129, line=291 (Compiled frame) - javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=30, line=802 (Compiled frame) - org.apache.catalina.core.ApplicationFilterChain.doFilter( javax.servlet.ServletRequest , javax.servlet.ServletResponse) @bci=101, line=173 (Compiled frame) - org.apache.catalina.core.ApplicationDispatcher.invoke( javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=396, line=672 (Compiled frame) - org.apache.catalina.core.ApplicationDispatcher.doInclude( javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=368, line=574 (Compiled frame) - org.apache.catalina.core.ApplicationDispatcher.include ( javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=55, line=499 (Compiled frame) - org.apache.jasper.runtime.JspRuntimeLibrary.include( javax.servlet.ServletRequest, javax.servlet.ServletResponse, java.lang.String , javax.servlet.jsp.JspWriter, boolean) @bci=45, line=966 (Compiled frame) - org.apache.jasper.runtime.PageContextImpl.doInclude(java.lang.String, boolean) @bci=14, line=633 (Compiled frame) - sun.reflect.GeneratedMethodAccessor59.invoke (java.lang.Object, java.lang.Object[]) @bci=71 (Interpreted frame) - sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) @bci=6, line=25 (Compiled frame) - java.lang.reflect.Method.invoke (java.lang.Object, java.lang.Object[]) @bci=111, line=585 (Compiled frame) - org.apache.struts.tiles.taglib.InsertTag.doEndTag() @bci=18, line=462 (Interpreted frame) - org.apache.jsp.pages.SearchPageLayout_jsp._jspx_meth_tiles_insert_5 ( javax.servlet.jsp.PageContext) @bci=50, line=235 (Interpreted frame) - org.apache.jsp.pages.SearchPageLayout_jsp._jspService( javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=381, line=101 (Interpreted frame) - org.apache.jasper.runtime.HttpJspBase.service( javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) @bci=3, line=97 (Interpreted frame) - javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest , javax.servlet.ServletResponse) @bci=30, line=802 (Interpreted frame) - org.apache.jasper.servlet.JspServletWrapper.service( javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean) @bci=186, line=322 (Compiled frame) - org.apache.jasper.servlet.JspServlet.serviceJspFile( javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.Throwable, boolean) @bci=129, line=291 (Compiled frame) -- Adam Feuer adamfeuer1 at gmail dot com -- Adam Feuer adamfeuer1 at gmail dot com