- 21 Oct, 2020 11 commits
-
-
Dridi Boukelmoune authored
Refs #3250
-
Dridi Boukelmoune authored
The problem with NOT_IMPLEMENTED is that it's contextual, so we can't reliably generate documentation that marks all conditional parameters as such. While at it, unsign the flags in parameter specs. Slightly better diff with the --word-diff option. Refs #3250
-
Dridi Boukelmoune authored
Refs #3250
-
Dridi Boukelmoune authored
Refs #3250
-
Dridi Boukelmoune authored
Unlike simple parameters, the field names in struct params don't match the parameters names. To deal with that a new field is added to PARAM() macros to allow simple and thread parameters to set themselves apart in that regard without getting any more intrusive. Refs #3250
-
Dridi Boukelmoune authored
Unlike string or VCC parameters they are inherited, but their definition is not as straightforward as simple parameters. They also need to be guarded by PARAM_ALL because inside struct params they are groupped in a dedicated struct vre_limits, and there is no need for disruption in that area. Refs #3250
-
Dridi Boukelmoune authored
Just like string parameters, they need to be guarded by PARAM_ALL since they are not inherited by the cache process. Refs #3250
-
Dridi Boukelmoune authored
Following the model of simple parameters, it is possible to find a home for string parameters in params.h too. A new PARAM_STRING() macro deals with the specificities of such parameters. Since string parameters are typically not inherited by the cache process they are guarded by a PARAM_ALL macro that defines whether a subset or the whole list of parameters is processed when params.h is #include'd. Refs #3250
-
Dridi Boukelmoune authored
The simple parameters are those that successfully migrated to params.h because they were trivial to declare in a way that could be used in all the places where they are needed. The PARAM() macro is now changed so that the outstanding `type` argument is separated from arguments matching struct parspec fields. To minimize disruption the new PARAM_SIMPLE() macro takes parameters in the order of the previous PARAM() definition. Refs #3250
-
Dridi Boukelmoune authored
We had everything we needed to make this happen, except for the mismatch between parameter names pool_xxx and struct member names xxx_pool. Refs #3250
-
Dridi Boukelmoune authored
Better diff with the --word-diff --word-diff-regex=. options.
-
- 20 Oct, 2020 2 commits
-
-
Dridi Boukelmoune authored
We don't need a delay, we need to sync operations.
-
Dridi Boukelmoune authored
This puts client.identity at the same level as client.ip which happens to be its fall-back before being explicitly set.
-
- 19 Oct, 2020 8 commits
-
-
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
-
Poul-Henning Kamp authored
The message makes very little sense when you read it, and it was only a pure accident which finally resolved what it means: Info 768: global struct member 'backend' (line 51, file cache/cache_backend.h) not referenced cache/cache_backend.h 51 Info 830: Location cited in prior message If you have: struct backend; void somefunc(struct backend *); struct backend { ... }; All is fine. But without the `somefunc` prototype, the first vacuous mention of `struct backend` is unused, and FlexeLint uses the name *of* the struct as the name of a field *in* the struct, and compounds the confusion by emitting the message on the line where struct backend is finally flushed out.
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
- 15 Oct, 2020 4 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.
-
Nils Goroll authored
55995ab0 turned the VSIG_* flags into counters, and changed the top of the VUT_Main() accordingly. We need to reflect the change also further down in the tight loop calling VSLQ_Dispatch(). Fixes #3436
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
-
- 14 Oct, 2020 4 commits
-
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
-
Dridi Boukelmoune authored
This is enforced by libvcc for static backends, but not guaranteed for dynamic backends. With no fallback we cannot meet the requirement since HTTP/1.1 that requests always have a host header if it is unset from VCL, and probes expect hosthdr to always be set.
-
- 12 Oct, 2020 1 commit
-
-
Dridi Boukelmoune authored
-
- 11 Oct, 2020 3 commits
-
-
Nils Goroll authored
-
Nils Goroll authored
Dridi pointed out that there was still a colon missing to conform with the SLT_Notice documentation in include/tbl/vsl_tags.h
-
Dridi Boukelmoune authored
Spotted by Coverity.
-
- 10 Oct, 2020 5 commits
-
-
Dridi Boukelmoune authored
-
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
-
Nils Goroll authored
noticed by Dridi here: https://github.com/varnishcache/varnish-cache/pull/3434/commits/f9f40b991f301fb96d2e2d0d52b86c3d4b1f9f7f#r502302785 The reference count returned already is an unsigned value
-
Nils Goroll authored
Test case by Reza, thank you Fixes #3433 Closes #3434
-
Nils Goroll authored
SLT_Notice requires messages to be prefixed by the vmod name. Using this format for notices only would appear inconsistent, so we change all shard log messages to that format.
-
- 09 Oct, 2020 2 commits
-
-
Nils Goroll authored
Making use of the PRIV_TASK `.free()` callback, we can finalize the reconfiguration when the tasks ends, in case `.reconfigure()` has not been called explicitly. o/ Dridi Also turn `SLT_Error` `"(notice)"` logs into `SLT_Notice`.
-
Nils Goroll authored
-