- 30 Dec, 2019 6 commits
-
-
Dridi Boukelmoune authored
The change in u00011.vtc is the result of having two commands starting with "pi", breaking auto-completion. Fortunately "pin\t" still does the trick.
-
Poul-Henning Kamp authored
-
Dridi Boukelmoune authored
It was a bit racy in the sense that the logs for c2 could be committed before the c1 logs. I hardened the expectations a bit in the process.
-
Dridi Boukelmoune authored
This adds the errno value to error logs for TCP fast open and accept filters. For FreeBSD errno is cleared prior to calling setsockopt with the hope that it will help understand if it's actually failing with an undocumented ENOENT. Speaking of documentation, the return value is either 0 or -1 for so there's no point in logging that.
-
Dridi Boukelmoune authored
Once all instances of a given test are started all of the remaining tests would free the test data structure, we needed another counter to keep track of ongoing tests so that only the last one to finish would do the single free.
-
Dridi Boukelmoune authored
-
- 29 Dec, 2019 7 commits
-
-
Guillaume Quintard authored
-
Guillaume Quintard authored
-
Guillaume Quintard authored
-
Guillaume Quintard authored
-
Guillaume Quintard authored
-
Guillaume Quintard authored
-
Guillaume Quintard authored
-
- 27 Dec, 2019 5 commits
-
-
Dridi Boukelmoune authored
This is only a matter of leaving the acceptor loop to always free the poolsock before returning from the function. This was initially done in only one place out of three, with no room to exit the accept inner loop in the absence of an incoming connection. With this we may have everything in place to drop the drop_pools debug flag. Refs 656982a5 Closes #3177
-
Dridi Boukelmoune authored
For those that aren't leaked on purpose, that is...
-
Dridi Boukelmoune authored
Upon failure, don't destroy the underlying director implementation. When the deletion code was split in c671bb66 in order to be reused in 61529854, it mistakenly included the director implementation. Instead, it's really the caller's job to tear down the backend if it couldn't be added. Since vbe_destroy operates on a director, it is split in two to avoid reintroducing the previous "undo" code duplication. Refs #3176
-
Dridi Boukelmoune authored
Otherwise at this point nothing is undone. And backend creation while a VCL is stuck in the COOLING state should be unlikely enough that we can assume the happy path by default. Refs #3176
-
Federico G. Schwindt authored
Fixed in 7ff636dc.
-
- 26 Dec, 2019 3 commits
-
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
When a VCL is in the COOLING state it is supposed to delete the director that was being added, but at the same time when a VBE backend fails to be added as a director it would also undo itself. This is in general a code path very hard to reach because either this happens in a worker and the opportunistic check always kicks in to hide the problem or this is done asynchronously (e.g. non-blocking lookups to create dynamic backends) and the race window is very small. In order to solve this the opportunistic check is skipped in VTC mode. The test coverage with vmod_debug is done synchronously to make things easier, but for this reason vbe_destroy can no longer expect to only run in the CLI thread. This is inspired by a similar patch by Martin for a different branch, since VRT_AddDirector deletes the backend upon failure, everything needs to be set up beforehand. We have to tolerate backend creation attempts in a COOLING VCL because in the asynchronous case the VCL temperature will change before COLD events are dispatched so there's no way to prevent a race. Closes #3176
-
Dridi Boukelmoune authored
Refs #3176
-
- 24 Dec, 2019 3 commits
-
-
Guillaume Quintard authored
if version is trunk, change it to the current date and add a flag file so that packages can be suffixed with -weekly/.weekly depending on the platform
-
Martin Blix Grydeland authored
VRT_delete_backend() sets be->cooled to non-zero as the only place where that is done. Assert that it is zero on entry as a check that VRT_delete_backend isn't called multiple times.
-
Martin Blix Grydeland authored
Several functions (VBE_Poll and vbe_destroy) tests be->cooled == 0 to determine which of the two lists backends and cool_backends a specific instance currently lives on. If the flag is in the process of being changed, then the wrong list head may be used and will result in strange bugs.
-
- 23 Dec, 2019 4 commits
-
-
Dridi Boukelmoune authored
We don't need randomness where we could have determinism.
-
Dridi Boukelmoune authored
Except in r02275.vtc until the code it refers to stops referring to subroutines as methods. While I was searching for relevant tests cases I also broke some long lines. Refs 17457b48
-
Dridi Boukelmoune authored
Refs 17457b48
-
Dridi Boukelmoune authored
-
- 21 Dec, 2019 1 commit
-
-
Nils Goroll authored
While, in most of the code, we now use SA_*_ADDR and format the address/port when needed, for the client ip and port, there still exist formatted strings as session attributes. I recently came across this in a different context and wondered if we should remove these string session attributes, but as we use them multiple times for each request, that would only imply additional overhead for repeated string formatting. So I think we should keep them for now, but we might want to consider to add to struct suckaddr optional formatted strings to avoid the duplicated formatting which already happens. This commit adds a regression test. Motivated by #3173
-
- 20 Dec, 2019 7 commits
-
-
Dridi Boukelmoune authored
Martin entrusted me with those changes after I pointed out that [core] was not a great prefix considering that VSL records already have the notion of a prefix. I opted for: - an actionable "vsl:" prefix for core notice messages - a prefix naming scheme mapping to manual pages As a result I changed the documentation a bit. Better diff with --word-diff --ignore-all-space options.
-
Guillaume Quintard authored
-
Guillaume Quintard authored
-
Martin Blix Grydeland authored
Log a notice message when delaying a conditional fetch and the stale template object is still streaming.
-
Martin Blix Grydeland authored
This VSL tag will be used for informational messages related to exceptional handling of requests.
-
Martin Blix Grydeland authored
Wait for the stale object to become fully fetched, so that we can catch fetch errors, before we unbusy the new object. This serves two purposes. First it helps with request coalescing, and stops long chains of IMS-updated short-TTL objects all streaming from a single slow body fetch. Second it makes sure that all the object attributes are complete when we copy them (this would be an issue for ie OA_GZIPBITS). This patch OBE's r01646.vtc, and slightly patches r01648.vtc to expect a 503 instead of a 200 and a broken connection on the failing client. Fixes: #3089
-
Dridi Boukelmoune authored
The code base and documentation refer to ``sub`` symbols as: - subroutines - functions - methods - procedures - callbacks This change focuses on always referring to them as subroutines in the documentation. During this documentation sweep, there were a lot of false positives since VCL, VMODs and HTTP also share that vocabulary and I may have missed false negatives, especially for generated bits of documentation. Some parts of the documentation were not touched on purpose: upgrade notes and changelogs of past releases, PHK random outbursts, etc. Now that the documentation is hopefully taken care of the same needs to happen in the code base, starting with user-facing error messages and then data structures names, function names etc. There will be however one exception. Anything referring to the scope of a subroutine, but being worded as if it referred to the subroutine itself will use scope instead. As this will touch a lot of code, it will be done incrementally, much like this change focused on non-generated documentation (and VCC files don't count as generated in this context). I also fixed RST formatting issues I noticed during my sweep. Better diff with the --word-diff --ignore-all-space options.
-
- 19 Dec, 2019 4 commits
-
-
Nils Goroll authored
as promised in #3161
-
Nils Goroll authored
-
Nils Goroll authored
-
Nils Goroll authored
Notice: The boolean expression does not lack parantheses, the test for generate.py is only to be and'ed with the test for .git Fixes #3165
-