You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Phil Sorber (JIRA)" <ji...@apache.org> on 2016/11/02 17:12:59 UTC

[jira] [Commented] (TS-4720) ATS not properly closing origin connections in client abort situations

    [ https://issues.apache.org/jira/browse/TS-4720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15629653#comment-15629653 ] 

Phil Sorber commented on TS-4720:
---------------------------------

[~jacksontj], can you create a back port PR for this? Let me know if you need any explanation on it.

Thanks.

> 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
>            Assignee: Thomas Jackson
>             Fix For: 7.0.0
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> 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)