[master] c22afc8 Do not consider busy objects as candidates in EXP_NukeOne.
Martin Blix Grydeland
martin at varnish-cache.org
Thu Jul 19 10:37:29 CEST 2012
commit c22afc8a73d3e55831e06293c4b2f42a7e15b9e8
Author: Martin Blix Grydeland <martin at varnish-software.com>
Date: Wed Jul 4 13:25:08 2012 +0200
Do not consider busy objects as candidates in EXP_NukeOne.
An attempt to nuke a busy object will end in assertion.
diff --git a/bin/varnishd/cache/cache_expire.c b/bin/varnishd/cache/cache_expire.c
index 5a41875..8f072b6 100644
--- a/bin/varnishd/cache/cache_expire.c
+++ b/bin/varnishd/cache/cache_expire.c
@@ -428,9 +428,10 @@ EXP_NukeOne(struct busyobj *bo, struct lru *lru)
/*
* It wont release any space if we cannot release the last
* reference, besides, if somebody else has a reference,
- * it's a bad idea to nuke this object anyway.
+ * it's a bad idea to nuke this object anyway. Also do not
+ * touch busy objects.
*/
- if (oc->refcnt == 1)
+ if (oc->refcnt == 1 && !(oc->flags & OC_F_BUSY))
break;
}
if (oc != NULL) {
More information about the varnish-commit
mailing list