Skip to content

net/http: excessive PING frames trigger ENHANCE_YOUR_CALM server response #76296

@neild

Description

@neild

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugReportIssues describing a possible bug in the Go implementation.NeedsFixThe path to resolution is known, but the work has not been done.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions