- 28 Jan, 2016 3 commits
-
-
Lasse Karstensen authored
-
Lasse Karstensen authored
-
Lasse Karstensen authored
-
- 22 Jan, 2016 12 commits
-
-
Lasse Karstensen authored
-
Federico G. Schwindt authored
Fixes previous commit. Sigh.
-
Federico G. Schwindt authored
Broken in 9bb8f962. Committed solution proposed by phk@, discussed with phk@ and martin@. Fixes #1845.
-
Poul-Henning Kamp authored
-
Poul-Henning Kamp authored
into the macro-table.
-
Dridi Boukelmoune authored
Instead of counting the references, the VCL keeps track of them with up to 31 characters in the description. It is the VMOD's responsibility to keep track of the opaque struct vclref * and provide a meaningful user- friendly description.
-
Dridi Boukelmoune authored
By the time we decide to switch to a VCL, it must be warm and usable. The deprecated VCL_EVENT_USE should not get in the way.
-
Dridi Boukelmoune authored
Don't update the state of the VCL to warm if it failed, and don't start the child if the active VCL failed to warm up.
-
Dridi Boukelmoune authored
The implementation is similar to the load/discard dance when a load fails. New VGC functions are introduced iff the VCL has at least one VMOD handling events. The generated code looks like this: static unsigned vgc_inistep; static unsigned vgc_warmupstep; ... static int VGC_Load(VRT_CTX) { ... } static int VGC_Discard(VRT_CTX) { ... } static int VGC_Warmup(VRT_CTX, enum vcl_event_e ev) { vgc_warmupstep = 0; /* 4 */ if (Vmod_debug_Func._event(ctx, &vmod_priv_debug, ev)) return (1); vgc_warmupstep = 4; return (0); } static int VGC_Use(VRT_CTX, enum vcl_event_e ev) { /* 4 */ if (Vmod_debug_Func._event(ctx, &vmod_priv_debug, ev)) return (1); return (0); } static int VGC_Cooldown(VRT_CTX, enum vcl_event_e ev) { int retval = 0; /* 4 */ if (vgc_warmupstep >= 4 && Vmod_debug_Func._event(ctx, &vmod_priv_debug, ev) != 0) retval = 1; return (retval); } static int VGC_Event(VRT_CTX, enum vcl_event_e ev) { if (ev == VCL_EVENT_LOAD) return(VGC_Load(ctx)); if (ev == VCL_EVENT_WARM) return(VGC_Warmup(ctx, ev)); if (ev == VCL_EVENT_USE) return(VGC_Use(ctx, ev)); if (ev == VCL_EVENT_COLD) return(VGC_Cooldown(ctx, ev)); if (ev == VCL_EVENT_DISCARD) return(VGC_Discard(ctx)); return (1); } However, if there are no VMODs handling events, no new functions shall be generated, leading to code looking like this: static unsigned vgc_inistep; static unsigned vgc_warmupstep; ... static int VGC_Load(VRT_CTX) { ... } static int VGC_Discard(VRT_CTX) { ... } static int VGC_Event(VRT_CTX, enum vcl_event_e ev) { if (ev == VCL_EVENT_LOAD) return(VGC_Load(ctx)); if (ev == VCL_EVENT_DISCARD) return(VGC_Discard(ctx)); (void)vgc_warmupstep; return (0); }
-
Dridi Boukelmoune authored
It is also possible to convey a message to the CLI. In case of a failure the VCL is cooled down. VCL_Load may now fail with either CLIS_PARAM or CLIS_CANT.
-
Dridi Boukelmoune authored
The two functions are separated in order to have self-documenting signatures because one class of events is (or will be) allowed to fail while the other MUST be failsafe.
-
Dridi Boukelmoune authored
Make a clear distinction between (struct vclprog).warm that is used as a boolean, unlike the second parameter of mgt_vcl_setstate. We don't use an actual C enum but const char[] to make debugging easier.
-
- 21 Jan, 2016 2 commits
-
-
Federico G. Schwindt authored
-
Federico G. Schwindt authored
Discussed with mithrandir@.
-
- 20 Jan, 2016 1 commit
-
-
Lasse Karstensen authored
-
- 19 Jan, 2016 1 commit
-
-
Lasse Karstensen authored
-
- 18 Jan, 2016 6 commits
-
-
Lasse Karstensen authored
-
Federico G. Schwindt authored
-
Federico G. Schwindt authored
-
Poul-Henning Kamp authored
concurrent -C tests don't collided. Problem spotted by: fgs
-
Poul-Henning Kamp authored
Fixes: #1802
-
Lasse Karstensen authored
In 5c826806 the checks are relaxed, but this commit (or part of) was not brought into 4.1. Fixes: #1842
-
- 15 Jan, 2016 2 commits
-
-
Lasse Karstensen authored
-
Poul-Henning Kamp authored
try to delete a objhead while it still has a waiting list, by forcing the last ref holder to rush the WL. Since the hasher owns the refcounts on objhead, we cannot just mingle req and objcore refcounts. Fortunately we don't need to add another refcounter, because all we really care about is the wl being empty when we drop the last ref. The wl/hsh_rush() mechanism will work differently with different thread-scheduling schenarios, and I cannot definitively rule out that we can drop the last ref on an oh, while there are still req's on the waiting list. Given that, and the existence proof in ticket #1823's race, this might have been the indicated memory-trampler. Conflicts: bin/varnishd/cache/cache_hash.c
-
- 14 Jan, 2016 13 commits
-
-
Dag Haavi Finstad authored
-
Ondřej Nový authored
-
Federico G. Schwindt authored
The latter takes precedence as per RFC 7232. Also if we have an I-N-M but no entity don't check I-M-S, just do a non-conditional request.
-
Lasse Karstensen authored
Conflicts: include/vrt.h
-
Lasse Karstensen authored
-
Dridi Boukelmoune authored
This paves the way towards failing VCL_EVENT_WARM events in VMODs. If setting the temperature fails, we may need to carry a message back to the CLI and other bits of context.
-
Dridi Boukelmoune authored
-
Poul-Henning Kamp authored
import vmod from "/some/dir/" and have the default vmod shlib filename appended.
-
Poul-Henning Kamp authored
know the filename of the -f argument, it should be possible to include "./" relative to it. The footnote is that the include is resolved at lower privlevel than the -f file is read, so in really obscure cases you could have really obscure error messages.
-
Poul-Henning Kamp authored
VCL file, and illegal everywhere else. This makes it easier to distribute "VCL-packages" Test-case written by: Kacper
-
Poul-Henning Kamp authored
the VCL fileopening logic in mgt so we have it only one place.
-
Poul-Henning Kamp authored
away const.
-
Poul-Henning Kamp authored
-