- 18 Oct, 2023 18 commits
-
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
This implements stream data handling using a buffer between the H/2 session thread and each stream thread. This is needed to avoid head of line blocking on the session socket when a data frame is received for a stream thread that is not yet ready to receive it. The buffer used will have to be as large as the send window the peer expects at the time the stream is opened. This will typically be 65535 unless the h2_initial_window_size parameter has been changed. Stream window updates will then be issued only once data is removed from the buffer by the request body being consumed from the request handling thread, limited in size to what space is then available in the buffer. Conflicts: bin/varnishd/http2/cache_http2_proto.c
-
Martin Blix Grydeland authored
The H/2 session thread does have a VSL buffer already set up, but the 'wrk->vsl' pointer was not set. This caused issue for e.g. LRU_NukeOne() as it wants to log. Set the buffer for the duration that the worker is dedicated as an H/2 session thread.
-
Dridi Boukelmoune authored
And use that for logging purposes when a successfully opened h2 session ends. RX_JUNK is still the default session close reason when existing reasons aren't accurate enough. Fixes #3393
-
Dridi Boukelmoune authored
In the same fashion as include/tbl/params.h for legibility.
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
Conflicts: bin/varnishd/storage/storage_simple.c
-
Martin Blix Grydeland authored
This is an API for getting an arbitrary buffer through the stevedores. The stevedore in question may then deploy LRU nuking or other measures to control resource usage.
-
Dridi Boukelmoune authored
-
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
-
Poul-Henning Kamp authored
Avoid VSB_printf for static strings Done with the following semantic patch for Coccinelle: @@ expression vsb, fmt; @@ - VSB_printf(vsb, fmt); + VSB_cat(vsb, fmt); This patch is available in the Varnish source tree.
-
Dridi Boukelmoune authored
The name implies that this is not for production usage.
-
Poul-Henning Kamp authored
When running really massive runs, "-j180 -n10000" kind of things, the "rm -rf" of the tmpdir becomes the limiting factor. The new -C option sends that int nice(1)'ed child process.
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
- 17 Oct, 2023 11 commits
-
-
Nils Goroll authored
seen in vtest: **** v1 vsl| 1004 Begin b bereq 1003 fetch **** v1 vsl| 1004 VCL_use b vcl1 **** v1 vsl| 1004 Timestamp b Start: 1602334643.946723 0.000000 0.000000 **** v1 vsl| 1004 BereqMethod b PUT **** v1 vsl| 1004 BereqURL b /2 **** v1 vsl| 1004 BereqProtocol b HTTP/1.1 **** v1 vsl| 1004 BereqHeader b Host: 127.0.0.1 **** v1 vsl| 1004 BereqHeader b Content-Length: 250000 **** v1 vsl| 1004 BereqHeader b X-Forwarded-For: 127.0.0.1 **** v1 vsl| 1004 BereqMethod b GET **** v1 vsl| 1004 BereqHeader b Accept-Encoding: gzip **** v1 vsl| 1004 BereqHeader b X-Varnish: 1004 **** v1 vsl| 1004 VCL_call b BACKEND_FETCH **** v1 vsl| 1004 VCL_return b fetch **** v1 vsl| 1004 BackendOpen b 26 s1 127.0.0.1 36579 127.0.0.1 60878 connect **** v1 vsl| 1004 Timestamp b Bereq: 1602334643.956883 0.010159 0.010159 **** v1 vsl| 1004 FetchError b HTC eof (-1) Ref #3433
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
Trying to fix the build for clang 15 actually broke the build for GCC. The -Werror that was initially set after saving CFLAGS was meant to be part of NO_VIZ test. We turn warnings into errors later in the configure script so at this point we shouldn't care about it. If we really do, we can move this check below the line where -Werror is set. GCC chokes on -Wno-error=deprecated-non-prototype so instead we add it conditionally. To match the naming convention everywhere else, libvgz_extra_cflags was renamed to VGZ_CFLAGS. Refs 118fd10c Conflicts: configure.ac lib/libvgz/Makefile.am
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
There are two warnings that we enforce for our own code that zlib does not. There's also the visibility attribute that we check at configure time. And regarding the visibility attribute, zlib no longer relies on a NO_VIZ macro and aligned with the autoconf naming convention and wants HAVE_HIDDEN instead. Conflicts: configure.ac lib/libvgz/Makefile.am
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
Varnish is not subject to CVE 2022 37434, we never use "extra" data.
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
FreeBSD's code is undergoing some compatibility adaptations so we go directly to the source from here. PS: Please keep cochinelle out of libvgz.
-
- 04 Sep, 2023 1 commit
-
-
Guillaume Quintard authored
-
- 05 Dec, 2022 1 commit
-
-
Martin Blix Grydeland authored
-
- 12 Oct, 2022 9 commits
-
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Simon Stridsberg authored
Fixes #3491
-