[master] 54908ac19 Duh! Last committed from wrong directory.

Poul-Henning Kamp phk at FreeBSD.org
Wed May 8 08:52:07 UTC 2019


commit 54908ac19ffce067fe231cb5e8be1ee7bf77683d
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Wed May 8 08:50:42 2019 +0000

    Duh! Last committed from wrong directory.

diff --git a/bin/varnishtest/tests/r02471.vtc b/bin/varnishtest/tests/r02471.vtc
index cbc2165e0..a573d4a3c 100644
--- a/bin/varnishtest/tests/r02471.vtc
+++ b/bin/varnishtest/tests/r02471.vtc
@@ -10,9 +10,9 @@ varnish v1 -vcl+backend {
 
 	sub vcl_recv {
 		if (req.url == "/hold") {
-			debug.hold_vcl_busy();
+			debug.vcl_prevent_cold();
 		} else if (req.url == "/release") {
-			debug.release_vcl_busy();
+			debug.vcl_allow_cold();
 		}
 		return (synth(200));
 	}
diff --git a/bin/varnishtest/tests/v00045.vtc b/bin/varnishtest/tests/v00045.vtc
index 2591f9d36..60504ce73 100644
--- a/bin/varnishtest/tests/v00045.vtc
+++ b/bin/varnishtest/tests/v00045.vtc
@@ -6,7 +6,7 @@ server s1 -start
 varnish v1 -vcl+backend {
 	import debug;
 	sub vcl_init {
-		debug.vcl_release_delay(3s);
+		debug.vcl_discard_delay(3s);
 	}
 } -start
 
diff --git a/include/vrt.h b/include/vrt.h
index 8db9bf88c..87319107f 100644
--- a/include/vrt.h
+++ b/include/vrt.h
@@ -52,10 +52,11 @@
  * binary/load-time compatible, increment MAJOR version
  *
  * unreleased (planned for 2019-09-15)
+ *	VRT_VCL_{Busy|Unbusy} changed to VRT_VCL_{Prevent|Allow}_Cold
  *	VRT_re[fl]_vcl changed to VRT_VCL_{Prevent|Allow}_Discard
  *	VRT_Vmod_{Init|Unload} moved to vcc_interface.h
  *	VRT_count moved to vcc_interface.h
- *	VRT_VCL_Busy() and VRT_VCL_Unbusy() added.
+ *	VRT_VCL_Prevent_Cold() and VRT_VCL_Allow_Cold() added.
  *	VRT_vcl_get moved to vcc_interface.h
  *	VRT_vcl_rel emoved to vcc_interface.h
  *	VRT_vcl_select emoved to vcc_interface.h
@@ -523,10 +524,6 @@ struct vmod_priv {
 	vmod_priv_free_f	*free;
 };
 
-struct vclref;
-struct vclref * VRT_VCL_Prevent_Discard(VRT_CTX, const char *);
-void VRT_VCL_Allow_Discard(struct vclref **);
-
 void VRT_priv_fini(const struct vmod_priv *p);
 struct vmod_priv *VRT_priv_task(VRT_CTX, const void *vmod_id);
 struct vmod_priv *VRT_priv_top(VRT_CTX, const void *vmod_id);
@@ -563,8 +560,12 @@ void VRT_VSC_Reveal(const struct vsc_seg *);
 size_t VRT_VSC_Overhead(size_t);
 
 /*
- * API to prevent VCL from going cold
+ * API to restrict the VCL in various ways
  */
 
-void VRT_VCL_Busy(VRT_CTX);
-void VRT_VCL_Unbusy(VRT_CTX);
+struct vclref;
+struct vclref * VRT_VCL_Prevent_Cold(VRT_CTX, const char *);
+void VRT_VCL_Allow_Cold(struct vclref **);
+
+struct vclref * VRT_VCL_Prevent_Discard(VRT_CTX, const char *);
+void VRT_VCL_Allow_Discard(struct vclref **);
diff --git a/lib/libvmod_debug/vmod.vcc b/lib/libvmod_debug/vmod.vcc
index 20ee901da..aa2a3634e 100644
--- a/lib/libvmod_debug/vmod.vcc
+++ b/lib/libvmod_debug/vmod.vcc
@@ -160,9 +160,10 @@ $Method VOID .refresh(STRING path)
 
 Dynamically refresh & (always!) replace the backend by a new UDS backend.
 
-$Function VOID vcl_release_delay(DURATION)
+$Function VOID vcl_discard_delay(PRIV_VCL, DURATION)
 
-Hold a reference to the VCL when it goes cold for the given delay.
+Hold a reference to the VCL when it goes cold preventing
+discard for the given delay.
 
 $Function BOOL match_acl(ACL acl, IP ip)
 
@@ -244,11 +245,11 @@ should now only be used for diagnostic purposes.
 
 0B is returned if no sensible value can be determined.
 
-$Function VOID hold_vcl_busy()
+$Function VOID vcl_prevent_cold(PRIV_VCL)
 
 Prevent VCL from going cold
 
-$Function VOID release_vcl_busy()
+$Function VOID vcl_allow_cold(PRIV_VCL)
 
 Allow VCL to go cold
 
diff --git a/lib/libvmod_debug/vmod_debug.c b/lib/libvmod_debug/vmod_debug.c
index 1e6d06078..4dac3f3dc 100644
--- a/lib/libvmod_debug/vmod_debug.c
+++ b/lib/libvmod_debug/vmod_debug.c
@@ -47,10 +47,11 @@ struct priv_vcl {
 #define PRIV_VCL_MAGIC		0x8E62FA9D
 	char			*foo;
 	uintptr_t		obj_cb;
-	struct vclref		*vclref;
+	struct vclref		*vclref_discard;
+	struct vclref		*vclref_cold;
+	VCL_DURATION		vcl_discard_delay;
 };
 
-static VCL_DURATION vcl_release_delay = 0.0;
 
 static pthread_mutex_t vsc_mtx = PTHREAD_MUTEX_INITIALIZER;
 static struct vsc_seg *vsc_seg = NULL;
@@ -340,7 +341,8 @@ priv_vcl_free(void *priv)
 		ObjUnsubscribeEvents(&priv_vcl->obj_cb);
 		VSL(SLT_Debug, 0, "Unsubscribed from Object Events");
 	}
-	AZ(priv_vcl->vclref);
+	AZ(priv_vcl->vclref_discard);
+	AZ(priv_vcl->vclref_cold);
 	FREE_OBJ(priv_vcl);
 	AZ(priv_vcl);
 }
@@ -376,6 +378,32 @@ event_load(VRT_CTX, struct vmod_priv *priv)
 	return (0);
 }
 
+VCL_VOID
+xyzzy_vcl_prevent_cold(VRT_CTX, struct vmod_priv *priv)
+{
+	struct priv_vcl *priv_vcl;
+	char buf[32];
+
+	CAST_OBJ_NOTNULL(priv_vcl, priv->priv, PRIV_VCL_MAGIC);
+	AZ(priv_vcl->vclref_cold);
+
+	bprintf(buf, "vmod-debug ref on %s", VCL_Name(ctx->vcl));
+	priv_vcl->vclref_cold = VRT_VCL_Prevent_Cold(ctx, buf);
+}
+
+VCL_VOID
+xyzzy_vcl_allow_cold(VRT_CTX, struct vmod_priv *priv)
+{
+	struct priv_vcl *priv_vcl;
+
+	(void)ctx;
+
+	CAST_OBJ_NOTNULL(priv_vcl, priv->priv, PRIV_VCL_MAGIC);
+	AN(priv_vcl->vclref_cold);
+	VRT_VCL_Allow_Cold(&priv_vcl->vclref_cold);
+}
+
+
 static int
 event_warm(VRT_CTX, const struct vmod_priv *priv)
 {
@@ -391,10 +419,10 @@ event_warm(VRT_CTX, const struct vmod_priv *priv)
 	}
 
 	CAST_OBJ_NOTNULL(priv_vcl, priv->priv, PRIV_VCL_MAGIC);
-	AZ(priv_vcl->vclref);
+	AZ(priv_vcl->vclref_discard);
 
 	bprintf(buf, "vmod-debug ref on %s", VCL_Name(ctx->vcl));
-	priv_vcl->vclref = VRT_VCL_Prevent_Discard(ctx, buf);
+	priv_vcl->vclref_discard = VRT_VCL_Prevent_Discard(ctx, buf);
 	return (0);
 }
 
@@ -404,10 +432,10 @@ cooldown_thread(void *priv)
 	struct priv_vcl *priv_vcl;
 
 	CAST_OBJ_NOTNULL(priv_vcl, priv, PRIV_VCL_MAGIC);
-	AN(priv_vcl->vclref);
+	AN(priv_vcl->vclref_discard);
 
-	VTIM_sleep(vcl_release_delay);
-	VRT_VCL_Allow_Discard(&priv_vcl->vclref);
+	VTIM_sleep(priv_vcl->vcl_discard_delay);
+	VRT_VCL_Allow_Discard(&priv_vcl->vclref_discard);
 	return (NULL);
 }
 
@@ -418,12 +446,12 @@ event_cold(VRT_CTX, const struct vmod_priv *priv)
 	struct priv_vcl *priv_vcl;
 
 	CAST_OBJ_NOTNULL(priv_vcl, priv->priv, PRIV_VCL_MAGIC);
-	AN(priv_vcl->vclref);
+	AN(priv_vcl->vclref_discard);
 
 	VSL(SLT_Debug, 0, "%s: VCL_EVENT_COLD", VCL_Name(ctx->vcl));
 
-	if (vcl_release_delay == 0.0) {
-		VRT_VCL_Allow_Discard(&priv_vcl->vclref);
+	if (priv_vcl->vcl_discard_delay == 0.0) {
+		VRT_VCL_Allow_Discard(&priv_vcl->vclref_discard);
 		return (0);
 	}
 
@@ -469,13 +497,15 @@ xyzzy_event_function(VRT_CTX, struct vmod_priv *priv, enum vcl_event_e e)
 	}
 }
 
-VCL_VOID v_matchproto_(td_debug_vcl_release_delay)
-xyzzy_vcl_release_delay(VRT_CTX, VCL_DURATION delay)
+VCL_VOID v_matchproto_(td_debug_vcl_discard_delay)
+xyzzy_vcl_discard_delay(VRT_CTX, struct vmod_priv *priv, VCL_DURATION delay)
 {
+	struct priv_vcl *priv_vcl;
 
 	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
+	CAST_OBJ_NOTNULL(priv_vcl, priv->priv, PRIV_VCL_MAGIC);
 	assert(delay > 0.0);
-	vcl_release_delay = delay;
+	priv_vcl->vcl_discard_delay = delay;
 }
 
 VCL_BOOL v_matchproto_(td_debug_match_acl)
@@ -782,20 +812,6 @@ xyzzy_stk(VRT_CTX)
 	return (0);
 }
 
-VCL_VOID
-xyzzy_hold_vcl_busy(VRT_CTX)
-{
-
-	VRT_VCL_Busy(ctx);
-}
-
-VCL_VOID
-xyzzy_release_vcl_busy(VRT_CTX)
-{
-
-	VRT_VCL_Unbusy(ctx);
-}
-
 VCL_VOID
 xyzzy_sndbuf(VRT_CTX, VCL_BYTES arg)
 {


More information about the varnish-commit mailing list