You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2003/02/04 21:22:12 UTC

DO NOT REPLY [Bug 16777] New: - Connector stops processing requests

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=16777>.
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=16777

Connector stops processing requests

           Summary: Connector stops processing requests
           Product: Tomcat 4
           Version: 4.1.18
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Connector:Coyote HTTP/1.1
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: rknight@conceptwave.com


After rapid image requests (in my test case images in a drop down javascript 
menu) requests cease to be processed (servlet doGet is not called). This 
situation persists until IE 6.0 reconnects to the server after a timeout 
period. The problem ONLY occurs when the server is running on Windows XP (all 
updates have been applied) and occurs frequently when requesting images in 
batchs of around 15 at a time. The servlet code to deliver the image is very 
simple and is as follows:
            // caching is disabled only exacerbate the problem by causing more
            // image request
            response.setHeader("Cache-Control", "no-store");
            response.setContentLength(imageBytes.length);
            response.getOutputStream().write(imageBytes);

Pausing the server during this condition reveals two threads reading from 
connected sockets. After a period of time (in my case 20 seconds) the reads 
timeout and the following exception occurs (this is caught internally and not 
logged):
java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at org.apache.coyote.http11.InternalInputBuffer.fill
(InternalInputBuffer.java:771)
	at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine
(InternalInputBuffer.java:429)
	at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:407)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnecti
on(Http11Protocol.java:386)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:534)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:530)
	at java.lang.Thread.run(Thread.java:536)

Further notes:
    - When the server is in this state other browsers may connect to the 
server and it responds to requests properly.
    - the problem also occurs using Connector:HTTP/1.1
    - the problem does NOT occur using Tomcat 3.3a
    - When repeating this problem the following exceptions occur frequently 
(these are caught internally and not logged):
java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:168)
	at org.apache.coyote.http11.InternalInputBuffer.fill
(InternalInputBuffer.java:771)
	at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine
(InternalInputBuffer.java:429)
	at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:407)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnecti
on(Http11Protocol.java:386)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:534)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:530)
	at java.lang.Thread.run(Thread.java:536)

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org