Closed
Description
We should have equivalents to most of Http2TimeoutTests for HTTP/3.
Timeouts to add and/or verify:
- Min combined request body rate timeouts
- KestrelServerLimits.MinRequestBodyDataRate
- HTTP/3 should partially support the IHttpMinRequestBodyDataRateFeature.
- Tracked individually by HTTP/3: Support request body rate timeout #29655
- Min combined response rate timeouts
- KestrelServerLimits.MinResponseDataRate
- This is everything sent to the client. The response headers, response body, control frames, etc...
- Response drain timeouts
- Derived from KestrelServerLimits.MinResponseDataRate and KestrelServerLimits.MaxResponseBufferSize
- When there's backpressure on the underlying stream/connection after
PipeWriter.FlushAsync()
completes which can happen with non-zeroPauseWriterThreshold
.
- Request header timeouts
- Keep-alive timeouts (will use msquic timeout)
- KestrelServerLimits.KeepAliveTimeout
- We probably don't want to keep idle QuicConnections around forever
If any the above bullet points aren't implemented yet, they probably deserve their own issue. The same goes for the size and count based limits in KestrelServerLimits:
- MaxRequestLineSize
- MaxRequestHeadersTotalSize
- MaxRequestHeaderCount
- MaxRequestBodySize (+IHttpMaxRequestBodySizeFeature)
- MaxConcurrentConnections