Mailing List Archive

[master] 8e8e7896b hash: Apply OC_F_DYING to purged objects
commit 8e8e7896b24cedb834a7e37f71f531c702f26c84
Author: Dridi Boukelmoune <dridi.boukelmoune@gmail.com>
Date: Tue Mar 12 17:39:43 2024 +0100

hash: Apply OC_F_DYING to purged objects

All paths to EXP_Remove() raise the OC_F_DYING flag to dismiss the
objcore in HSH_Lookup(). A regular purge used to EXP_Rearm() an oc
for immediate (yet delayed) expiry, leaving it to the expiry thread
to apply this flag and call EXP_Remove().

When the regular purge went from EXP_Rearm() to EXP_Remove() in order
to avoid counting purged objects as expired, the OC_F_DYING flag was
overlooked.

Refs 709f71ab731298fa4d30d4c8b2b61dae04002ea6

diff --git a/bin/varnishd/cache/cache_hash.c b/bin/varnishd/cache/cache_hash.c
index ce31aecf0..8627c7a95 100644
--- a/bin/varnishd/cache/cache_hash.c
+++ b/bin/varnishd/cache/cache_hash.c
@@ -718,6 +718,8 @@ HSH_Purge(struct worker *wrk, struct objhead *oh, vtim_real ttl_now,
}
if (oc->flags & OC_F_DYING)
continue;
+ if (is_purge)
+ oc->flags |= OC_F_DYING;
oc->refcnt++;
ocp[n++] = oc;
}
_______________________________________________
varnish-commit mailing list
varnish-commit@varnish-cache.org
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-commit