r4076 - trunk/varnish-cache/bin/varnishd

phk at projects.linpro.no phk at projects.linpro.no
Tue May 12 09:28:12 CEST 2009


Author: phk
Date: 2009-05-12 09:28:12 +0200 (Tue, 12 May 2009)
New Revision: 4076

Modified:
   trunk/varnish-cache/bin/varnishd/cache_center.c
   trunk/varnish-cache/bin/varnishd/cache_esi.c
Log:
Take another stab at #487 by explicitly resetting the worker thread
workspace before we start using it in miss/pass/pipe.  



Modified: trunk/varnish-cache/bin/varnishd/cache_center.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_center.c	2009-05-11 10:59:23 UTC (rev 4075)
+++ trunk/varnish-cache/bin/varnishd/cache_center.c	2009-05-12 07:28:12 UTC (rev 4076)
@@ -97,7 +97,6 @@
 	AZ(sp->obj);
 	assert(sp->xid == 0);
 
-	WS_Reset(sp->wrk->ws, NULL);
 	i = HTC_Complete(sp->htc);
 	while (i == 0)
 		i = HTC_Rx(sp->htc);
@@ -816,6 +815,7 @@
 	AZ(sp->obj);
 	AN(sp->objcore);
 	AN(sp->objhead);
+	WS_Reset(sp->wrk->ws, NULL);
 	sp->wrk->bereq = &sp->wrk->http[0];
 	http_Setup(sp->wrk->bereq, sp->wrk->ws);
 	http_FilterHeader(sp, HTTPH_R_FETCH);
@@ -880,6 +880,7 @@
 	CHECK_OBJ_NOTNULL(sp->vcl, VCL_CONF_MAGIC);
 	AZ(sp->obj);
 
+	WS_Reset(sp->wrk->ws, NULL);
 	sp->wrk->bereq = &sp->wrk->http[0];
 	http_Setup(sp->wrk->bereq, sp->wrk->ws);
 	http_FilterHeader(sp, HTTPH_R_PASS);
@@ -929,6 +930,7 @@
 	CHECK_OBJ_NOTNULL(sp->vcl, VCL_CONF_MAGIC);
 
 	sp->acct_req.pipe++;
+	WS_Reset(sp->wrk->ws, NULL);
 	sp->wrk->bereq = &sp->wrk->http[0];
 	http_Setup(sp->wrk->bereq, sp->wrk->ws);
 	http_FilterHeader(sp, HTTPH_R_PIPE);

Modified: trunk/varnish-cache/bin/varnishd/cache_esi.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_esi.c	2009-05-11 10:59:23 UTC (rev 4075)
+++ trunk/varnish-cache/bin/varnishd/cache_esi.c	2009-05-12 07:28:12 UTC (rev 4076)
@@ -760,7 +760,7 @@
 	struct esi_bit *eb;
 	struct object *obj;
 	struct worker *w;
-	char *ws_wm, *wws_wm;
+	char *ws_wm;
 	struct http http_save;
 
 	w = sp->wrk;
@@ -797,7 +797,6 @@
 
 		/* Take a workspace snapshot */
 		ws_wm = WS_Snapshot(sp->ws);
-		wws_wm = WS_Snapshot(sp->wrk->ws);
 
 		http_SetH(sp->http, HTTP_HDR_URL, eb->include.b);
 		if (eb->host.b != NULL)  {
@@ -838,7 +837,6 @@
 
 		/* Reset the workspace */
 		WS_Reset(sp->ws, ws_wm);
-		WS_Reset(sp->wrk->ws, wws_wm);
 
 		WRW_Reserve(sp->wrk, &sp->fd);
 		if (sp->fd < 0)



More information about the varnish-commit mailing list