Thomas Jackson created TS-4720:
----------------------------------

             Summary: ATS not properly closing origin connections in client 
abort situations
                 Key: TS-4720
                 URL: https://issues.apache.org/jira/browse/TS-4720
             Project: Traffic Server
          Issue Type: Bug
          Components: HTTP
            Reporter: Thomas Jackson


We've noticed that there are some scenarios that ATS doesn't close the origin 
connection when the client aborts. To reproduce I set up an http server which 
would return a text/stream sending a message every 10s. In this case, if I do a 
GET request to the endpoint and then immediately kill the client, the 
connection to the origin doesn't close until the transaction active timer kicks 
in. 

After digging into this, it seems that this is actually due to a bug in the 
HttpSM-- specifically in how it checks whether a request has a body. The 
default value for content-length is `-1`, but some checks are `== 0` -- which 
means that if the request had no content-length header it is treated as a 
request with a content-length. 

The particular place that was problematic was the section that enables the vio 
reader to watch for client aborts-- which specifically isn't enabled for 
POST/chunked requests as it is enabled later down the call chain (since it 
needs to handle the buffers itself).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to