https://bz.apache.org/bugzilla/show_bug.cgi?id=69748

--- Comment #3 from Nagendra <nagendra.vallapuse...@servicenow.com> ---
When a request is processed synchronously, Tomcat works fine as follows.

1. Handles the request and sends a response.
2. Waits for the next request from the same client for a duration defined by
keepAliveTimeout in the server.xml
<Connector keepAliveTimeout="..." connectionTimeout="..."/>

keepAliveTimeout is used after the response is sent and the connection is idle.
connectionTimeout is used before the request is fully received (e.g., while
waiting for headers).

In case of async request, Tomcat is working as follows and not considering the
value defined for 
1. Handles the request and sends a response.
2. After asyncContext.complete() is invoked, it waits for the next request from
the same client for a duration defined by connectionTimeout always. ****but not
keepAliveTimeout*********



Initial findings in the code
-------------------------------

Http11Processor.java - within the service method, synchronous request handling
enters the while loop twice. The first iteration consumes the connectionTimeout
value, and the second iteration consumes the keepAliveTimeout value via
inputBuffer.parseRequestLine(). However, for asynchronous request handling, the
loop runs only once due to the async flag condition, consuming only the
connectionTimeout value and skipping the second iteration thereby ignoring the
keepAliveTimeout.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to