Remy's fix is now in the 3.3 nightly. Since you can reproduce this, it would be a big help if you could find a machine to test this on.
----- Original Message ----- From: "Hans Schmid" <[EMAIL PROTECTED]> To: "Tomcat Developers List" <[EMAIL PROTECTED]> Sent: Saturday, October 19, 2002 5:59 AM Subject: AW: Bug 13736 > Bill, Remy, > > I have seen this one once on our production system > running Tomcat 3.3.1 with AJP1.3, Apache 1.3.27, mod_jk 1.1.0 > This is on Sparc Solaris 8 running JDK 1.3.1_04. > 11019 is our ajp13 port (which we uswe also as shutdown port. No AJP 1.2 > port open) > Our webservers use the lb_worker to connect to the Tomcat servers (different > machine) > > It occured, when we had a bug in our application causing an endless > stacktrace, which filled > up our logs.( 5000 !!! MB per minute). At some stage, the JVM crashed out > after a stack overflow. > > Before the crash, tomcat got slower and slower due to the massive logging. > 11019 is our ajp13 port (which we uswe also as shutdown port. No AJP 1.2 > port open) > > I can reproduce the endless stacktrace, but am not sure to get the > ServerSocket error > (can not reproduce this on our production server for obvious reasons) > > > PoolTcpEndpoint: Endpoint > ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=11019] ignored exception: > java.net.SocketException: Interrupted system call > java.net.SocketException: Interrupted system call > at java.net.PlainSocketImpl.socketAccept(Native Method) > at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:463) > at java.net.ServerSocket.implAccept(ServerSocket.java:238) > at java.net.ServerSocket.accept(ServerSocket.java:217) > at > org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultSe > rverSocketFactory.java:107) > at > org.apache.tomcat.util.net.PoolTcpEndpoint.acceptSocket(PoolTcpEndpoint.java > :326) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:472) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav > a:516) > at java.lang.Thread.run(Thread.java:479) > 2002-10-05 16:01:24 - Ctx(/einsurance) : IllegalStateException in R( > /einsurance + /view + /screens/car/carDescription.htm) - > java.lang.IllegalStateException: Cannot forward because the response has > already been committed > at > org.apache.tomcat.facade.RequestDispatcherImpl.doForward(RequestDispatcherIm > pl.java:207) > at > org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatcherImpl > .java:174) > at > de.einsurance.gui.framework.ExceptionHandler.handle(ExceptionHandler.java:25 > 5) > at > de.einsurance.gui.framework.ExceptionHandler.handle(ExceptionHandler.java:15 > 1) > at > de.einsurance.gui.framework.ExtendedActionServlet.process(ExtendedActionServ > let.java:69) > at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:491) > at javax.servlet.http.HttpServlet.service(HttpServlet.java) > at javax.servlet.http.HttpServlet.service(HttpServlet.java) > at > org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:574) > at org.apache.tomcat.core.Handler.invoke(Handler.java:322) > at org.apache.tomcat.core.Handler.service(Handler.java:235) > at org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:485) > at > org.apache.tomcat.facade.RequestDispatcherImpl.doForward(RequestDispatcherIm > pl.java:272) > at > org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatcherImpl > .java:174) > at > org.apache.struts.action.ActionServlet.processActionForward(ActionServlet.ja > va:1758) > at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1595) > at > de.einsurance.gui.framework.ExtendedActionServlet.process(ExtendedActionServ > let.java:65) > at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:491) > at javax.servlet.http.HttpServlet.service(HttpServlet.java) > at javax.servlet.http.HttpServlet.service(HttpServlet.java) > at > org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:574) > at org.apache.tomcat.core.Handler.invoke(Handler.java:322) > at org.apache.tomcat.core.Handler.service(Handler.java:235) > at org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:485) > at > org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:91 > 7) > at org.apache.tomcat.core.ContextManager.service(ContextManager.java:833) > at > org.apache.tomcat.modules.server.Ajp13Interceptor.processConnection(Ajp13Int > erceptor.java:341) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav > a:516) > at java.lang.Thread.run(Thread.java:479) > > > Cheers, > Hans > > > > -----Ursprungliche Nachricht----- > > Von: Remy Maucherat [mailto:remm@;apache.org] > > Gesendet: Freitag, 18. Oktober 2002 20:15 > > An: Tomcat Developers List > > Betreff: Re: Bug 13736 > > > > > > Bill Barker wrote: > > > > > +1. As I said above, it probably hasn't shown up in 3.3 mostly because > > > AJP13 has many fewer accepts. > > > > I'll fix it then. > > > > You have to be careful that no IOException should end up in that code, > > otherwise, for each one the server socket will be restarted (not good). > > With HTTP/1.1, the only thing that can happen is when there's an > > exception in the accept, which apparently screws up the server socket. > > > > It would be nice if this was thouroughly tested for problems after I > > commit the fix. > > > > Remy > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:tomcat-dev-unsubscribe@;jakarta.apache.org> > > For additional commands, e-mail: > > <mailto:tomcat-dev-help@;jakarta.apache.org> > > > > > > > -- > To unsubscribe, e-mail: <mailto:tomcat-dev-unsubscribe@;jakarta.apache.org> > For additional commands, e-mail: <mailto:tomcat-dev-help@;jakarta.apache.org> > -- To unsubscribe, e-mail: <mailto:tomcat-dev-unsubscribe@;jakarta.apache.org> For additional commands, e-mail: <mailto:tomcat-dev-help@;jakarta.apache.org>