-
Dridi Boukelmoune authored
Contrary to previous attempts this one takes a different route that is much more reliable and faster. First, it sets things up so that we can predicatbly lock varnish when it's trying to send the first (and only) part of the body. Instead of assuming a delay that is sometimes not enough under load, we wait for the timeout to show up in the log. We can't put the barrier in l1 or l2 because logexpect spec evaluation is eager, in order to cope with the VSL API. Because we bypass the cache, we can afford letting c1 bail out before completing the transaction, which is necessary because otherwise the second c1 run would take forever on FreeBSD that takes our request to limit the send buffer to 128 octets very seriously (on Linux we get around 4k). Because we use barriers, the send and receive buffers were bumped to 256 to ensure c1 doesn't fail (on FreeBSD) before it reaches barrier statements.
bcba9649