Test suite for dynamic backends

Dridi Boukelmoune dridi at varni.sh
Sun Jul 12 12:00:51 CEST 2015


On Sun, Jul 12, 2015 at 11:20 AM, Poul-Henning Kamp <phk at phk.freebsd.dk> wrote:
> --------
>
> I have finally given up on adding "interrim" refcounting of VCL backends.
>
> The .resolve() trick you had implemented to narrow down the race
> condition did only that, it didn't completely close it, and I could
> provoke it in heavy-load synthetic tests.

Damn, I fixed all the races I could see/prove, but it wasn't enough.

> Instead I have simply given dynamic backends a 60 second cool-off
> before we nuke them.
>
> This is only a stop-gap measure, and in Varnish 5 we will need to
> bite the bullet and do proper refcounting on all non-atomic VCL
> types.

Speaking of Varnish 5, I wish to expose VCL probes and ACLs to VMODs
in 4.1, the missing pieces for dynamic backends. The code is in
patchwork, but I won't be around to support it before the release. So
hopefully in 4.1 or 4.1.1 (same for the DNS director).

> But for now, dynamic backends should work for 4.1, but VMODS should
> take care to not needlessly replace dynamic backends with identical
> new ones (as vmod_debug does intentionally).

If you look at the DNS director patch, you'll see extra care in not
removing backends needlessly.

> Thanks for your heroic effort Dridi,  Good work!

Thanks for the review on a weekend, and for your patience.

I will be back in August, and I intend to write proper documentation
on directors (with static, dynamic, or vmod backends) if that can wait
until then. I also intend to write a test suite for vmod backends, I'm
thinking about a "stupid" director doing TCP connections without any
kind of pooling.



More information about the varnish-dev mailing list