-
Notifications
You must be signed in to change notification settings - Fork 18.5k
Description
When an HTTP/2 request is canceled, the HTTP/2 client attempts to verify that the server is still responding by sending a PING frame along with the RST_STREAM for the request. This avoids the problem in #59690, where we send a request to a server, time out the request without receiving any response, send a reset, and then repeat indefinitely.
Sending too many PING frames trips DoS detection on some servers. #70505 reported stream-reset confirmation pings tripping DoS detection on gRPC servers. We addressed this by limiting the frequency with which we send PINGs; see that issue for details.
Apparently even with the more limited number of PINGs we currently send, we can still trip DoS detection in some cases. I have a report of Google GFEs sending an ENHANCE_YOUR_CALM error to Go clients when many requests are reset.