kaiburjack opened a new pull request, #917:
URL: https://github.com/apache/tomcat/pull/917

   This is to delay sending the second GOAWAY (with last seen stream id) after 
sending the first GOAWAY (with max stream id), in order to mitigate a race 
between the client already having buffered frames for new streams after the 
server has sent the first graceful GOAWAY frame and the second GOAWAY.
   
   Once the second GOAWAY frame reaches the client, its own HTTP/2 client 
implementation may then itself signal a stream reset (rejected stream) error 
condition to the client application or might send the new forbidden stream 
frames to the server, where it then would be rejected.
   
   Therefore, we implement the same behaviour as provided by the Envoy proxy's 
HTTP Connection Manager drain_timeout: Delay sending the second final GOAWAY 
after sending the first graceful GOAWAY to give the client enough time to react 
to the first GOAWAY and stop sending new streams and close the connection on 
its side first.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to