Guys, just to warn you, there's currently an issue affecting HTTP/2 with POST payloads to "slow" servers. It's a bit difficult to explain but in short if haproxy's buffers fill up during the transfer, there's a risk that the wakeup event to restart decoding once the buffer is released cannot be processed immediately, and is not detected later, causing the end of data never to be sent and the request to time out.
I now manage to reproduce it reasonably easily with curl. As long as there is some other activity on the connection, things will continue to flow and there will not be any problem but in this particular case we end up with a black hole trying to process something we can't do. This one is a bit annoying because after turning it into any direction, it seems the only way to address it is to revisit the now very old stream interface API, and given that each and every timeout bug we faced during 1.7 has some of its roots in there, I'd rather be extremely cautious before trying to be creative. I'm still working on this as time permits. In the mean time I'd suggest that those having to support "large" POSTs (those that don't fit in haproxy's + kernel's buffers, ie more than a few hundreds of kB) better disable HTTP/2 for now. I'll keep you updated once an acceptable solution is found, and now it's getting pretty clear that we need to kill all this aging mess for 1.9! Cheers, Willy