Dear all,

I'm running Tomcat 4.0.3 with Java 1.4 on Linux, and we are getting lots of 'IOException: Connection reset by peer' (see stack trace at bottom of mail), which I understand is the user hitting 'stop' or closing the window before the load completes.

After several hours of running our server will run out of request processors (well actually we put maxProcessors at 1024 so the site falls over with 'OutOfMemoryError: unable to create native thread' but that's just whilst we try and fix this).

I believe this is because StandardWrapperValve is catching the IOException, so it never gets back up to HttpProcessor, so the processor never gets recycled.

I saw in a comment right at the bottom of here http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5181 that this is fixed in 4.0.4b1, but I could not find any other information about that in the release notes, bugzilla or mail list archives.

We can't use the 4.1.X branch because we symlink to content outside the webapp directory and the allowLinking doesn't work for us (in 4.1.12 at least).

So what I am asking is:

- Does anyone know of a recorded problem with recycling processors in 4.0.3 and if so is this definately fixed in later versions of 4.0.X ?
And:
- Has anyone else experienced something like this and is my analysis way off mark ?

Many thanks,
Graham.


Stack trace:

2002-10-25 11:57:25 StandardWrapperValve[default]: Servlet.service() for servlet default threw exception
java.io.IOException: Connection reset by peer
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:126)
at org.apache.catalina.connector.ResponseBase.flushBuffer(Unknown Source)
at org.apache.catalina.connector.HttpResponseBase.flushBuffer(Unknown Source)
at org.apache.catalina.connector.ResponseBase.write(Unknown Source)
at org.apache.catalina.connector.ResponseStream.write(Unknown Source)
at org.apache.catalina.connector.http.HttpResponseStream.write(Unknown Source)
at org.apache.catalina.servlets.DefaultServlet.copyRange(Unknown Source)
at org.apache.catalina.servlets.DefaultServlet.copy(Unknown Source)
at org.apache.catalina.servlets.DefaultServlet.serveResource(Unknown Source)
at org.apache.catalina.servlets.DefaultServlet.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
at com.gocontent.servlet.GCSecurityFilter.doFilter(GCSecurityFilter.java:97)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source)
at org.apache.catalina.core.StandardWrapperValve.invoke(Unknown Source) <-- Catches the exception
at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
at org.apache.catalina.core.StandardContextValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
at org.apache.catalina.valves.CertificatesValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
at org.apache.catalina.core.StandardContext.invoke(Unknown Source)
at org.apache.catalina.core.StandardHostValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
at org.apache.catalina.valves.ErrorReportValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
at org.apache.catalina.valves.AccessLogValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
at org.apache.catalina.core.StandardEngineValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source)
at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
at org.apache.catalina.connector.http.HttpProcessor.process(Unknown Source)
at org.apache.catalina.connector.http.HttpProcessor.run(Unknown Source)
at java.lang.Thread.run(Thread.java:536)



--
To unsubscribe, e-mail: <mailto:tomcat-user-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-user-help@;jakarta.apache.org>

Reply via email to