[
https://issues.apache.org/jira/browse/TS-5092?focusedWorklogId=34463&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-34463
]
ASF GitHub Bot logged work on TS-5092:
--------------------------------------
Author: ASF GitHub Bot
Created on: 01/Jan/17 16:53
Start Date: 01/Jan/17 16:53
Worklog Time Spent: 10m
Work Description: Github user maskit commented on a diff in the pull
request:
https://github.com/apache/trafficserver/pull/1262#discussion_r94286295
--- Diff: proxy/http2/Http2ConnectionState.cc ---
@@ -301,11 +304,11 @@ rcv_headers_frame(Http2ConnectionState &cstate, const
Http2Frame &frame)
if (result != HTTP2_ERROR_NO_ERROR) {
if (result == HTTP2_ERROR_COMPRESSION_ERROR) {
- return Http2Error(HTTP2_ERROR_CLASS_CONNECTION,
HTTP2_ERROR_COMPRESSION_ERROR);
+ return Http2Error(HTTP2_ERROR_CLASS_CONNECTION,
HTTP2_ERROR_COMPRESSION_ERROR, "recv headers compression error");
} else if (result == HTTP2_ERROR_ENHANCE_YOUR_CALM) {
- return Http2Error(HTTP2_ERROR_CLASS_CONNECTION,
HTTP2_ERROR_ENHANCE_YOUR_CALM);
+ return Http2Error(HTTP2_ERROR_CLASS_CONNECTION,
HTTP2_ERROR_ENHANCE_YOUR_CALM, "recv headers enhance your calm");
} else {
- return Http2Error(HTTP2_ERROR_CLASS_STREAM,
HTTP2_ERROR_PROTOCOL_ERROR);
+ return Http2Error(HTTP2_ERROR_CLASS_STREAM,
HTTP2_ERROR_PROTOCOL_ERROR, "recv headers decode error");
--- End diff --
This is not a decode error. Please see a comment for the same logic in
rcv_continuation_frame.
Issue Time Tracking
-------------------
Worklog Id: (was: 34463)
Time Spent: 40m (was: 0.5h)
> 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
> Fix For: 7.1.0
>
> Time Spent: 40m
> 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)