Hi Jonathan, On Thu, May 20, 2021 at 08:22:59AM +1200, Jonathan Opperman wrote: > Hi All, > > I've had to remove h2 from all my front-ends, the issue seems to be gone > after doing this, any ideas? I saw a similar > post from a previous release of haproxy, but in all my > troubleshooting/searching I can not find where I was reading it.
So it possibly isn't a real problem but just a translation of the reality: in HTTP/1.1, if a user clicks the Stop or Back button while a page is loading, only one object will be aborted since they're serialized. In HTTP/2, the client might very well start to fetch 100 objects in parallel (small images etc), so clicking the Back buttun during a load can abort 100 objects at once, and this alone will significantly increase the amount of transfer aborts. The same is true for connection failures (clients disappearing from the net). Thus it is perfectly possible to see a 100-fold increase in such errors if you're unlucky. In practice it's rarely the case because there's one extra cause in HTTP/1 to see CD which is when clients close with a TCP reset after retrieving everything, effectively aborting the end of the transfer. In addition, in HTTP/1 you will often not even get any error for mid-sized objects in close mode, because they're serialized in the system's buffers. Typically, sub-megabyte objects can be sent back to the client, the socket is closed, and only later the client aborts and the system is the only one to know there was an abort. With HTTP/2, it doesn't work like this, as there are windows at the connection and stream level, meaning that you'll usually not send hundreds of kB back and close, you have to wait for the transfer to complete, which increases the detection of such errors. Note that I am *not* saying that you're not facing a bug, it is possible there is one. I'm just saying that you might very well be witnessing something totally normal that you couldn't see before for reasons related to the differences between the protocols. To give you some references in case that helps, I've just checked in the haproxy.org logs over the last 10 days and am seeing 1.5% of HTTP/1 responses ending in CD versus 2.0% for HTTP/2. We don't have many assets on the pages so that avg requests per page is unusually low. Maybe other users have different metrics to share. Regards, Willy

