On Sun, Jul 12, 2015 at 11:20 AM, Poul-Henning Kamp <[email protected]> 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. _______________________________________________ varnish-dev mailing list [email protected] https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev
