Assertion failure in VCL_DelBackend()
dridi at varni.sh
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