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>

Reply via email to