Hi all,

We have recently witnessed a strange situation.  Our Tomcat (6.0.35) listens on 
2 ports: 8080 and 8009, handling HTTP and AJP respectively.  At some point in 
time we found that Apache is replying HTTP 503s to all clients and a look at 
netstat showed that indeed Apache could not communicate with Tomcat - there 
were many connections in state SYN_SENT, that were never replied.  A test of 
attempting to connect to Tomcat's 8009 port turned out to give the same result, 
so the issue was obviously in Tomcat and not Apache.  But netstat also showed 
that Tomcat was listening on port 8009.  After digging into the logs, we found 
that there was an Out of Memory exception in the JK's accept() sequence and 
once this exception was caught there was a message of "terminating thread".

So although the exception is caught and handled by killing the thread (isn't 
that a little drastic?), the socket isn't closed beforehand and thus the OS 
thinks that the port is still fine (in LISTENING state), as although the thread 
is dead, the process is alive.  Has anyone encountered this or knows if this 
bug is known?


Thanks,
Ofer

Reply via email to