GOAWAY and proxies

In our implementation experience, GOAWAY as specified today is not an 
ideal mechanism for graceful shutdown. When there is high RTT between a 
proxy and the server, many requests may be in flight when the server 
generates a GOAWAY. For clients, it seems the solution is to reissue the 
request. The same strategy doesn't work for proxies. A proxy would have 
to buffer the headers and body of all requests until it sees the 
beginning of a response just in case a GOAWAY is received from the 
server. This is obviously not ideal as it puts high memory requirements 
on the proxy for a rare case.

The server could implement some workarounds like "pre-acking" some 
number of streams in its GOAWAY just in case there are some in flight 
requests, but this doesn't seem like a great solution.

Is there a way we can improve GOAWAY so that proxies can issue zero 
errors during a server restart and stay safe from a memory usage 
perspective? I'd be interested to hear others' implementation experience 
on this topic.

Received on Thursday, 10 April 2014 21:57:00 UTC