DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21763>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=21763 Tomcat 4.1.24 hangs under heavy load using http connector. ------- Additional Comments From [EMAIL PROTECTED] 2003-09-10 19:21 ------- This is due to a defect of design of thread pool in Tomcat 4.1.x. (I have yet read sources of 5.x) An instance of ControlRunnable could wait at two locations. One is in its run() method, the another is in ThreadPool's runIt() method via TcpWorkerThread.runIt (). This causes deadlock. When a ControlRunnable is waiting at ThreadPool.runIt() via other classes such as TcpWorkerThread.runIt() -> endpoint.tp.runIt(this). The only chance it gets notified is another ControlRunnable to end and to call ThreadPool.returnController(). At a moment the server is under a very heavy traffic, all ControlRunnable will be hung at ThreadPool.runIt() -> this.wait(). I have a solution for this is to use a queue of ThreadPoolRunnable to hold all requests. This way, a ControlRunnable no longer need to wait outside. Thanks, Rex --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]