Hi List,

Am 27.08.20 um 11:45 schrieb Tim Düsterhus, WoltLab GmbH:
>> You can see two h2c connections, one is on the frontend (hence the 'F')
>> and the other one is on the backend. The h2s is the H2 stream, unique to
>> a request (though it comes from a pool, so it will be reused for new
>> streams on any connection once this one is finished). Thus bu just
>> filtering on the h2 and correlating with what you see in the logs (with
>> your source ports), and the date of course, you can quite reliably match
>> connections, hence requests.
> 
> Okay, that works sufficiently well for me. I've extracted the relevant
> parts, redacted any private information and will check with a coworker
> to see if I missed anything. I'll send you the traces + logs in private
> after the contents have been ACKed :-)
> 

Willy and I discussed this in private. My understanding is that this
issue is caused by an inherent limitation of H2 with regard to head of
the line blocking.

In simple terms:

If the stuff at the beginning of the the backend connection belongs to a
client that is very slowly or not reading the stuff within its client
connection then everything that's within that backend connection will
stall until the slow client finally gets around to reading the stuff
thats intended for it.

Basically a very slow client can block *other* clients that are
unfortunate and share the backend connection.

Our resolution is simple: We disable H2 for the backend connections and
use good old H1. We don't *need* end to end H2.

Best regards
Tim Düsterhus
Developer WoltLab GmbH

-- 

WoltLab GmbH
Nedlitzer Str. 27B
14469 Potsdam

Tel.: +49 331 96784338

[email protected]
www.woltlab.com

Managing director:
Marcel Werk

AG Potsdam HRB 26795 P

Reply via email to