fellow: fini stevedore_priv / call fellow_busy_done() also for objfree
This bug was also present in varnish-cache (will document) and found its way into fellow through the api-definition-by-example paradigm of varnish-cache: In varnish-cache vbf_stp_error(), an existing storage object is freed to be replaced with a new one, potentially from a different storage (usually -sTransient). In this case, ObjBocDone is not called, because the boc is to be preserved - from the client's perspective, the backend transaction is still in progress, and the client is waiting for the busy object to finish. At the storage level, however, the process of creation of a new object _is_ finished, and any busy object state which the storage might keep needs to be finalized. So, if oc->boc is not NULL for an ObjFreeObj() call, the stevedore needs to finish any busy object transaction. Fixes #14
Showing
Please register or sign in to comment