GitHub user shinrich opened a pull request:

    https://github.com/apache/trafficserver/pull/1262

    TS-5092: ATS handling of too many concurrent streams too agressive

    This issue was identified while debugging new errors seen by an internal 
team after they enabled HTTP/2 in their client. On the backend, they saw an 
increase in the cases were ATS sends the origin the POST header but no POST 
body and then closes the connection.
    With the addition of Error() messages we were able to see a case where the 
client is trying to open the 101'st stream on a session. This is beyond the 100 
max concurrent stream limit, so ATS shuts down the session which kills the 
previous 100 streams.
    A closer reading of section 5.1.2 of the spec 
(https://tools.ietf.org/html/rfc7540#section-5.1.2) indicates that this should 
be a stream error and not a connection error. Bryan Call, Masaori, and Maskit 
confirmed this interpretation. Maskit also noted that the other error case in 
the current createStream method must be treated as a connection error.
    Presumably the client library is expecting the refused stream case so it 
can try again later.
    
    The main change is in create_stream().  Added error messages through the 
H2Error() object to enable this debugging and future tracking down of error 
conditions.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/shinrich/trafficserver ts-5092

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/trafficserver/pull/1262.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1262
    
----

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to