[master] c15676c Don't unbusy objects that are not allowed to stream, until they have fetched their body.

Poul-Henning Kamp phk at varnish-cache.org
Tue Sep 3 15:08:21 CEST 2013


commit c15676ca7c8c4335b692190f6064a859059fb5f5
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue Sep 3 13:08:02 2013 +0000

    Don't unbusy objects that are not allowed to stream, until they
    have fetched their body.

diff --git a/bin/varnishd/cache/cache_fetch.c b/bin/varnishd/cache/cache_fetch.c
index d365158..6982be8 100644
--- a/bin/varnishd/cache/cache_fetch.c
+++ b/bin/varnishd/cache/cache_fetch.c
@@ -413,7 +413,8 @@ vbf_stp_fetch(struct worker *wrk, struct busyobj *bo)
 	}
 
 	AZ(obj->ws_o->overflow);
-	HSH_Unbusy(&wrk->stats, obj->objcore);
+	if (bo->do_stream)
+		HSH_Unbusy(&wrk->stats, obj->objcore);
 
 	if (bo->vfp == NULL)
 		bo->vfp = &VFP_nop;
@@ -422,6 +423,8 @@ vbf_stp_fetch(struct worker *wrk, struct busyobj *bo)
 	VBO_setstate(bo, BOS_FETCHING);
 
 	V1F_fetch_body(wrk, bo);
+	if (!bo->do_stream)
+		HSH_Unbusy(&wrk->stats, obj->objcore);
 	HSH_Complete(obj->objcore);
 
 	assert(bo->refcount >= 1);



More information about the varnish-commit mailing list