Do not propagate origin Connection:close to client http/2 session. #3061
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a concern about the commit created from PR #2106. I like the commit in general, but this bit that closes the HTTP2 session if the origin response comes back with Connection: close seems wrong.
In the HTTP/1.1 case we do not propagate connection close from origin to client. According the HTTP standard the connection header is a hop-by-hop header and should not be propagated in any case. The HttpTransactHeaders::copy_header_fields() will drop the hop-by-hop headers when moving between client and origin (or origin and client).
I noticed this while testing a build. The http2 test would fail due to errors about not being able to start new streams due to a half open session. Track it down to the fact that the shutdown timer was being initiated after the first response (which had the connection: close header).