Description
While testing my patch for TS-4341 I've noticed that once a request is queued waiting for max connections, ATS will not abort the request even if the client has completely disconnected. It seems that ATS is only setting up a consumer of the UA tunnel if there is a post body-- and as such we never see the socket close on us. Still digging into this some, but this seems like a problem
Attachments
Issue Links
- is related to
-
TS-4341 When ATS hits `proxy.config.http.origin_max_connections` it has no limits on the number of requests that can be queued
- Resolved
From some additional investigation, it seems that the HttpSM makes an assumption that if the client disconnects it just a half close (https://github.com/apache/trafficserver/blob/master/proxy/http/HttpSM.cc#L846), which doesn't make a lot of sense to me-- if the client disconnected, there is no reason to finish the origin request or anything-- IMO at that point we should drop the request and mark it as aborted. I can't seem to find any reason we shouldn't shut it down at that point (esp. since the underlying socket is already closed at this point).