[
https://issues.apache.org/jira/browse/TS-5092?focusedWorklogId=33597&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-33597
]
ASF GitHub Bot logged work on TS-5092:
--------------------------------------
Author: ASF GitHub Bot
Created on: 14/Dec/16 15:08
Start Date: 14/Dec/16 15:08
Worklog Time Spent: 10m
Work Description: 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
----
----
Issue Time Tracking
-------------------
Worklog Id: (was: 33597)
Time Spent: 10m
Remaining Estimate: 0h
> ATS handling of too many concurrent streams too agressive and maybe out of
> spec
> -------------------------------------------------------------------------------
>
> Key: TS-5092
> URL: https://issues.apache.org/jira/browse/TS-5092
> Project: Traffic Server
> Issue Type: Bug
> Components: HTTP/2
> Reporter: Susan Hinrichs
> Assignee: Susan Hinrichs
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)