• Dridi Boukelmoune's avatar
    varnishtest: Tweak default h2 window parameters · c9fc3842
    Dridi Boukelmoune authored
    This change increases the initial size and reduces the low watermark.
    
    RFC7540 says this:
    
    > Flow-controlled frames from the sender and WINDOW_UPDATE frames from
    > the receiver are completely asynchronous with respect to each other.
    > This property allows a receiver to aggressively update the window
    > size kept by the sender to prevent streams from stalling.
    
    The default parameters are very much on the low-latency aggressive
    updates end of the spectrum, which increases asynchronicity at the
    expense of determinism in test cases.
    
    The tweaks made by varnishtest allows basic tests to send a few request
    bodies before being bothered by window update race conditions. Test
    cases that cover h2 flow control or anything else related to window
    updates may reset parameters or pick other specific values. This frees
    us from a bunch of barriers where the purpose of mitigating this race
    was rarely even documented.
    
    This successfully passed the following test locally:
    
        git grep -Fl +http2 -- '*.vtc' |
        xargs bin/varnishtest/varnishtest -i -n100 -j32
    
    We can hope that h2 test cases will be overall more stable from now on.
    
    Refs #3442
    c9fc3842