Assertion failure in VCL_DelBackend()

Dridi Boukelmoune dridi at
Mon Nov 16 23:25:24 CET 2015

> Mmmm, this may be a misunderstanding, the context was PRIV_* scopes
> for backends, such as PRIV_TASK or PRIV_TOP. I would argue that
> creating backends at the beginning of such a scope and removing them
> at the end is such an unlikely solution that we should consider not
> supporting it.

As long as it gets out of VCL (end-user) scope before you delete it, it's fine.

> But it sounds like you're saying backends should not be deleted under
> any circumstances. That I don't agree with.

I'm saying this for static backends. That would make dynamic backends
pointless if you couldn't add/delete them dynamically.

My point is more that if you made a dynamic round-robin director for
instance. You could either return a wrapper director that resolve the
right backend when the resolve function is called or simply return the
leaf director directly to VCL code.

Returning the leaf director would be error-prone if you can delete it
concurrently, that's what I'm against.

> What should I do about backends that cease to exist, in a context
> where it's not workable to reload a new static backend configuration?

I don't understand this question. If you need a backend that can be
reloaded dynamically, you shouldn't use a static backend.

> That's what I want the runtime backend delete for.

And you can VRT_delete_backend any backend created with VRT_new_backend.

More information about the varnish-dev mailing list