[master] 164378c Fix and test a refcount leak
Poul-Henning Kamp
phk at varnish-cache.org
Wed Sep 4 08:52:10 CEST 2013
commit 164378c5cd35ab4eddf587f91ef1a977454029ef
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Wed Sep 4 06:51:58 2013 +0000
Fix and test a refcount leak
diff --git a/bin/varnishd/cache/cache_req_fsm.c b/bin/varnishd/cache/cache_req_fsm.c
index 5fc5171..ca47bf0 100644
--- a/bin/varnishd/cache/cache_req_fsm.c
+++ b/bin/varnishd/cache/cache_req_fsm.c
@@ -370,6 +370,7 @@ cnt_fetch(struct worker *wrk, struct req *req)
CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
+ CHECK_OBJ_NOTNULL(req->objcore, OBJCORE_MAGIC);
AZ(req->obj);
req->acct_req.fetch++;
@@ -378,7 +379,7 @@ cnt_fetch(struct worker *wrk, struct req *req)
if (req->objcore->flags & OC_F_FAILED) {
req->err_code = 503;
req->req_step = R_STP_ERROR;
- //XXX ? AZ(HSH_DerefObjCore(&wrk->stats, &req->objcore));
+ (void)HSH_DerefObjCore(&wrk->stats, &req->objcore);
req->objcore = NULL;
return (REQ_FSM_MORE);
}
diff --git a/bin/varnishtest/tests/b00020.vtc b/bin/varnishtest/tests/b00020.vtc
index 6b6943d..dbe6831 100644
--- a/bin/varnishtest/tests/b00020.vtc
+++ b/bin/varnishtest/tests/b00020.vtc
@@ -22,6 +22,9 @@ client c1 {
expect resp.status == 503
} -run
+varnish v1 -expect n_object == 0
+varnish v1 -expect n_objectcore == 0
+
server s1 {
rxreq
send "HTTP/1.1 200 Ok\r\nConnection: close\r\n\r\n"
@@ -36,3 +39,7 @@ client c1 {
rxresp
expect resp.status == 200
} -run
+
+varnish v1 -expect n_object == 1
+varnish v1 -expect n_objectcore == 1
+
More information about the varnish-commit
mailing list