[ 
https://issues.apache.org/jira/browse/TS-3087?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alan M. Carroll resolved TS-3087.
---------------------------------
       Resolution: Fixed
    Fix Version/s: 5.2.0
         Assignee: Alan M. Carroll

> Flow control can stall at low water mark values
> -----------------------------------------------
>
>                 Key: TS-3087
>                 URL: https://issues.apache.org/jira/browse/TS-3087
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: Core
>            Reporter: Alan M. Carroll
>            Assignee: Alan M. Carroll
>             Fix For: 5.2.0
>
>
> If the flow control high water mark is set to be smaller than the TCP socket 
> buffer size, flow control can stall out. The root cause is that the 
> UnixNetVConnection will generate the WRITE_READY event before writing to the 
> socket. If the amount of data in the buffers is larger than the water mark 
> (throttling the connection) and small enough to all be written at once to the 
> socket then the buffer will empty but no event will be generated to 
> unthrottle the connection.
> To fix this, I added the ability to force an event on the write buffer 
> becoming empty for a NetVConnection. The flow control logic sets this in the 
> cases where this can happen and therefore gets an event in which it can 
> detect the buffer is empty and unthrottle.
> To see this, simply set the flow control water marks to a small value such as 
> 25000 and fetch a medium sized (~200K) object. Most of the time the request 
> will stall. It will stall more often if cache is disabled (because the 
> CacheVC generates a lot of events).



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

Reply via email to