- 01 Mar, 2024 7 commits
-
-
Nils Goroll authored
-
Nils Goroll authored
This reverts the code change from commit 6d423aa5, keeps the test case and adds a VDP_Close() for the case that the transport deliver function is not called. Part 2 of the fix for #4067 Conflicts: bin/varnishd/cache/cache_req_fsm.c
-
Nils Goroll authored
Part 1 of the fix for #4067
-
Nils Goroll authored
this is for consistency, to simplify parsing and to reduce the amount of data logged with VSL. Motivated by #4042
-
Asad Sajjad Ahmed authored
Signed-off-by: Asad Sajjad Ahmed <asadsa@varnish-software.com>
-
Dridi Boukelmoune authored
Refs #4063
-
Nils Goroll authored
Very much looks like copy-pasta in ede8c3db JAIL_FIXFD_VSMMGT and JAIL_FIXFD_VSMWRK work on directories but, as the name implies, JAIL_FIXFD_FILE not.
-
- 28 Feb, 2024 1 commit
-
-
Dridi Boukelmoune authored
This adds coverage for a non-delivery transition from vcl_hit, where the busy objcore would drop its sole reference in the event of a grace hit. The lack of coverage was visible in the gcov dashboard: 669 580 if (busy != NULL) { 670 0 (void)HSH_DerefObjCore(wrk, &busy, 0); 671 0 VRY_Clear(req); 672 0 } There should now be at least one pass inside this block. Refs #4032
-
- 26 Feb, 2024 3 commits
-
-
Walid Boudebouda authored
Refs #4055
-
Steven Wojcik authored
When a VMOD adds a CFLAG with `libvmod_$1_la_CFLAGS` the object name is no longer `vmod_$name.lo` but `$library-vmod_name.lo` this changes the build order such that the VCC autogenerated files would not be guaranteed to compile first causing compilation issues.
-
Steven Wojcik authored
-
- 19 Feb, 2024 3 commits
-
-
Nils Goroll authored
For chunked encoding, we do not know how big the object is ultimately going to be, so VFP_GetStorage() called ObjGetSpace() with the fetch_chunksize parameter in this case. Yet which size is best might differ for different storage engines, and having the information that the caller does not know the final size might be relevant. Storage engines could guess that if a request came in for fetch_chunksize that this _might_ be the "chunked" case, but that heuristic would be wrong for Objects of just that size advertised via Content-Length. So this patch takes the guesswork out of the game by just passing the magic 0 value down to the storage engine to mean "give me some good chunk of bytes, I do not know how much I am going to need".
-
Asad Sajjad Ahmed authored
Since, we seems to not use it at all. Signed-off-by: Asad Sajjad Ahmed <asadsa@varnish-software.com>
-
Poul-Henning Kamp authored
-
- 15 Feb, 2024 1 commit
-
-
Dridi Boukelmoune authored
-
- 14 Feb, 2024 1 commit
-
-
Stephane Cance authored
When `vcl_deliver` does not return `deliver` the timestamp ends up being a duplicate of the `synth` equivalent or the `restart` timestamp.
-
- 13 Feb, 2024 3 commits
-
-
Dridi Boukelmoune authored
Instead of adding hoops to the documentation, in particular to keep it in sync, improve the only location where we emit HTC status logs. We could also consider replacing the HTC enum with a struct, similar to what we did in other places. The struct symbols would be named after the UPPER name from the table, have a name and description fields, possibly replace the error number with a simple is_err field. Capturing the long description like this is less intrusive. Refs #4042
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
Spotted by Darryl Rodden.
-
- 07 Feb, 2024 2 commits
-
-
Poul-Henning Kamp authored
Submitted by: @AlveElde in Vtest repo on github
-
Walid Boudebouda authored
This is an extended variable that has the same format as the default one used when no format is specified. The variable is useful for appending or prepending other formatters to the default format.
-
- 05 Feb, 2024 6 commits
-
-
Nils Goroll authored
If VRT_AddDirector() was called from handling a VCL_COLD event or, indirectly, from another thread which the VCL_COLD event handler was waiting for, varnishd would deadlock and prevent any CLI or director changes, because VRT_AddDirector() requires the vcl_mtx, which is held during vcl_BackendEvent() to ensure a consistent view of the director list. Because of the early return from VRT_AddDirector() this likely only happened in VTC mode, but the underlying race existed nevertheless. This patch _almost_ fixes the issue with the intend of making it highly unlikely to occur without getting too involved with the vcl temperature controls: We now check the same conditions under which vcl_set_state() would transition the temperature to COOLING and, if they apply, use Lck_Trylock() in a try/wait loop instead of Lck_Lock(), avoiding the deadlock. The patch presumably still does not fix the problem entirely, because the reads of vcl->busy and vcl->temp before the Lck_Trylock() could still be outdated. With the temperature controls otherwise unchanged, the only alternative idea I could come up with was to always use a try/wait loop, which I dismissed due to the performance impact (overhead and added latency). Ref https://github.com/nigoroll/libvmod-dynamic/issues/110
-
Dridi Boukelmoune authored
Otherwise poll(2) returns EINVAL on FreeBSD when both pipe_timeout and pipe_task_deadline are disabled. Fixes #4043
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
It takes a vtim_dur and returns a number of milliseconds. NAN means no timeout and negative values are considered expired deadlines and get a chance to succeed a non-blocking poll.
-
Dridi Boukelmoune authored
This test case has been failing for a while in continuous integration and trying to bisect the change that triggered a stack overflow for our Ubuntu 18.04 job I wasn't able to make it pass, even for the commit where it first landed. Something must have happened outside of Varnish to consume more stack.
-
Dridi Boukelmoune authored
The other timeouts should eventually become unset-able as well, where an unset variable falls back to a parameter and zero means no timeout, overriding the fallback parameter. Refs #4043
-
- 01 Feb, 2024 1 commit
-
-
Nils Goroll authored
... and minor touch up of the file. No, this does not imply me checking all our RST files for adherence with this standard. Ref 0d663a5e
-
- 31 Jan, 2024 9 commits
-
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
The [be]req.task_deadline should eventually be generalized to all subroutines with read-write access to [be]req. When that happens, bereq.task_deadline will inherit req.task_deadline during the pipe transition. Related tasks should otherwise have independent deadlines, except sub-request tasks like ESI where there is a hierarchical dependency.
-
Dridi Boukelmoune authored
This takes care of documenting the meaning of a zero timeout value in a central location, since none of the timeout parameters have a mention for the effect it produces. This is written as if there was a separate varnish-param(7) manual, which should eventually be enacted. This manual extraction was initially implemented in the adjacent #3817 timeout nomenclature draft.
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Dridi Boukelmoune authored
-
Nils Goroll authored
-
Nils Goroll authored
in VRT_AddDirector, we create the new vcldir with an initial reference, which we need to drop if we can not add it. Compare: VRT_AddDirector() ... vdir->refcnt++; vcldir_free() ... AZ(vdir->refcnt); Noticed when testing other experimental changes while working on https://github.com/nigoroll/libvmod-dynamic/issues/110 #5 0x000055820c8cb845 in VAS_Fail (func=0x55820c904559 "vcldir_free", file=0x55820c903a47 "cache/cache_vrt_vcl.c", line=150, cond=0x55820c90459a "(vdir->refcnt) == 0", kind=VAS_ASSERT) at vas.c:67 #6 0x000055820c83a442 in vcldir_free (vdir=0x7f662aa53140) at cache/cache_vrt_vcl.c:150 #7 0x000055820c839fe1 in VRT_AddDirector (ctx=0x7f662befe250, m=0x55820c965260 <vbe_methods_noprobe>, priv=0x7f662aa20780, fmt=0x55820c900f7f "%s") at cache/cache_vrt_vcl.c:219 #8 0x000055820c7c7c4d in VRT_new_backend_clustered (ctx=0x7f662befe250, vc=0x0, vrt=0x7f662befdd10, via=0x0) at cache/cache_backend.c:737 #9 0x000055820c7c8632 in VRT_new_backend (ctx=0x7f662befe250, vrt=0x7f662befdd10, via=0x0) at cache/cache_backend.c:755
-
- 29 Jan, 2024 2 commits
-
-
Nils Goroll authored
-
Nils Goroll authored
Motivated by #4042
-
- 26 Jan, 2024 1 commit
-
-
Poul-Henning Kamp authored
-