Re: HTTP/2 response completed before its request

This same theoretical problem happens for HTTP/1.X over TCP. If the peers
don't call read() to pull the TCP data into user space, the kernel's TCP
stack will eventually shrink the receive window to 0. Of course, the TCP
receive windows will generally be larger than HTTP/2's initial windows
(64K).


On Tue, Jul 1, 2014 at 10:45 AM, Jesse Wilson <jesse@swank.ca> wrote:

> Cool! So this is a normal case.
>
> One corner case of a corner case is if the server's early response has
> more than a window's worth of data...
>
> Our client wouldn't acknowledge that data because it doesn't start reading
> until it's done writing.
>
> And if the server writes its early response before discarding/resetting
> the request, that write might stall waiting for a WINDOW_UPDATE that won't
> ever come. Deadlock!
>
> (This is probably just a theoretical problem!)
>

Received on Tuesday, 1 July 2014 17:55:27 UTC