scheduling off the waiting list

Nils Goroll slink at
Wed Dec 9 21:13:02 CET 2009

Hi Poul-Henning,

thank you for taking the time to respond.

> What happens here is that another client/thread holds this object
> "busy" while it is being fetched from the backend.  Once the object
> is marked unbusy, the waiting threads are relased, and calls hash
> again.

My understanding is that the waiting sessions are re-scheduled on threads, right?

> I'm not quite sure you you keep hitting it so many times, it smells
> like som weird situation where the object takes a long time to fetch,
> has no cacheability, but does not get marked "pass" in vcl_fetch ?

I am seeing hsh_rush getting called much more often than I thought it should be 
and I don't yet understand why.

What I would really like to see is that the waitinglist gets rescheduled when 
the busy object is actually becomes in the cache. I am suspecting this has to do 
with calling HSH_Deref(&Parent) in HSH_Unbusy and/or the fact that HSH_Drop 
calls both Unbusy and Deref, but I don't understand this yet.


More information about the varnish-dev mailing list