- 22 Nov, 2021 1 commit
-
-
Poul-Henning Kamp authored
Dont limit ourselves to a set number of VSL records to include the "0 CLI" we want, various platforms emit a number of Debug messages relating to sockopt Use the `process p%d -expect-text` mechanism to wait only as long as necessary for the "0 CLI"
-
- 19 Nov, 2021 15 commits
-
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
Instead of having a single global check that all acceptors may race towards, this check now happens on a per listen socket basis. For sockets with a different inheritance behavior on a single system, we avoid having the first connection dictate what may be inherited by a connection socket from its listen socket for all the other listen addresses. At least on Linux, Unix-domain sockets DO NOT inherit options like SO_{RCV,SND}TIMEO even though TCP sockets do. On the off chance that even sockets of the same family could behave differently, like for example a regular vs a loopback TCP session, this is done on a per listen address basis. To avoid cache-acceptor coordination with the acceptor worker threads of a given listen address, workers will individually perform this check once and for all when the first connection is accepted. We also stay defensive in the event of a parameter change, just in case a previous test would assume inheritance because the Varnish parameter value would match the kernel default value. Once a mismatch is observed for a given connection with a given socket, the inheritance test is no longer performed needlessly for this combination. A race still exists between acceptors from different thread pools for a given listen address, but this race is identical to the previous one based on the former global need_test variable. Although the inheritance check leaks into struct listen_sock, it is opaque so everything can remain contained inside cache_acceptor.c. Some aspects of this change (including the clarification comments) are from @mbgrydeland. Refs #2722
-
Dridi Boukelmoune authored
And while at it, update the SO_LINGER explanation to match reality. Refs 7eba9460
-
Dridi Boukelmoune authored
The SO_KEEPALIVE justification used to precede such a constant and was left confusingly lingering over the unrelated need_test variable.
-
Dridi Boukelmoune authored
Using the tmp sock_arg for storage, we can test all values with the same logic and only differentiate hard-coded options from parameterized ones. Stylistic polish by @mbgrydeland.
-
Dridi Boukelmoune authored
They can be stored directly in the sock_opts array or on the stack.
-
Dridi Boukelmoune authored
The sess and listen_sock structs contain everything we need to find or infer the former `sock`, `uds` and `force` arguments. In particular, it helps distinguish between working on a connection vs listen socket.
-
Dridi Boukelmoune authored
And conversely rename `to` variables to `so` for consistency. Better diff with the --word-diff --word-diff-regex='\w+' options.
-
Dridi Boukelmoune authored
It is a 1:1 mapping with IPPROTO_TCP, so TCP_NODELAY was moved down to be with the other IPPROTO_TCP options.
-
Dridi Boukelmoune authored
Closes #3692
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Poul-Henning Kamp authored
-
Nils Goroll authored
When decoding only a substring, we naturally see no padding, so we must not base tail processing on the number of pad characters seen, but rather on the number of characters missing until the end of the current block of four. Fixes #3378
-
- 12 Nov, 2021 4 commits
-
-
Martin Blix Grydeland authored
-
Guillaume Quintard authored
Conflicts: .travis.yml bin/varnishd/cache/cache_panic.c
-
Dridi Boukelmoune authored
When a VUT is slow enough, it might very well be overrun while it is scanning logs. For our built-in VUTs like varnishncsa or varnishlog this can happen if writing the output can block waiting for IO ops or when the output is piped to a slow consumer.
-
Dridi Boukelmoune authored
There's only one call site for vtx_dispatch() and it guarantees that len is greater than zero.
-
- 10 Nov, 2021 3 commits
-
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
- 09 Nov, 2021 3 commits
-
-
Martin Blix Grydeland authored
-
Pål Hermunn Johansen authored
A default stack space of 48k will cause a stack overflow in some of the test cases on some Linux distributions. The increase to 64k seems to be enough to solve this.
-
Emanuele Rocca authored
Fixes #3437
-
- 25 Oct, 2021 3 commits
-
-
Nils Goroll authored
0051cbe3 did not work on solaris-descendents, the man page clearly states that the size argument also determines the buffer to be malloc()ed for a NULL buffer argument.
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
Ever since my system upgraded haproxy to 2.3.10 this test has consistently timed out. While that would be a breaking change involving the independent vtest project too, I think the VTC syslog spec would work better with something like: expect skip facility.level regex Where skip could be uint, * or ? similar to how logexpect works, and both facility and level could also be * to be non-specific. For now, let's hope this does not break the test suite for anyone else. Conflicts: bin/varnishtest/tests/h00005.vtc
-
- 20 Aug, 2021 1 commit
-
-
Dridi Boukelmoune authored
In the output of vcl.show -v, it means that the least useful file (in the sense that it is common to every single vcl.load) is now printed last. This change originates from a larger and more intrusive refactoring. It also helps get rid of spurious Wstring-contatenation warnings from clang 12 in the test suite, instead of disabling it altogether. Refs c8174af6
-
- 11 Aug, 2021 1 commit
-
-
Reza Naghibi authored
Conflicts: bin/varnishd/cache/cache_esi_deliver.c
-
- 03 Aug, 2021 1 commit
-
-
Dridi Boukelmoune authored
This is just the order of their declaration in the VCL manual. As a side effect it works around a bug where the sess.xid syntax requirements would prevent sess.timeout_idle to be used in VCL 4.0, which is less intrusive than a proper fix. The bug was fixed in trunk without being noticed in the first place after many heavy changes to libvcc. For a stable branch this is less risky than a back-port since there are only two sess.* symbols. Fixes #3564
-
- 01 Jul, 2021 5 commits
-
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
-
Martin Blix Grydeland authored
When receiving H/2 data frames, make sure to take the advertised content length into account, and fail appropriately if the combined sum of the data frames does not match the content length.
-
Martin Blix Grydeland authored
The change to VTCP_Check() in 58a21da7 broke expect_close in varnishtest.
-
- 28 Apr, 2021 3 commits
-
-
Dridi Boukelmoune authored
Technically it can also happen with a debugger attached to a process despite SA_RESTART.
-
Dridi Boukelmoune authored
Conflicts: lib/libvarnish/binary_heap.c
-
Nils Goroll authored
... documented on Linux as POSIX.1 The exception here is ECONNREFUSED which so far we only tolerate for Solaris and which seems to make sense for connect() only. To be discussed in #3539
-