[6.0] 8053650b0 Test VSM _.index rewrites when more than half of the space is inert

Martin Blix Grydeland martin at varnish-software.com
Fri Oct 18 13:23:06 UTC 2019


commit 8053650b09f5b375ee38a97b551fe663d2118b77
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Mon Aug 5 10:36:04 2019 +0000

    Test VSM _.index rewrites when more than half of the space is inert

diff --git a/bin/varnishtest/tests/c00083.vtc b/bin/varnishtest/tests/c00083.vtc
new file mode 100644
index 000000000..67f52b612
--- /dev/null
+++ b/bin/varnishtest/tests/c00083.vtc
@@ -0,0 +1,85 @@
+varnishtest "Test VSM _.index rewrite when too many deletes"
+
+varnish v1 -vcl {
+	backend default { .host = "${bad_ip}"; }
+} -start
+
+process p1 {
+	nlines=`wc -l < ${tmpdir}/v1/_.vsm_child/_.index`
+	nminus=`grep -c '^-' ${tmpdir}/v1/_.vsm_child/_.index`
+	echo NLINES $nlines NMINUS $nminus
+} -dump -run
+
+# The child process starts out with approx 37 VSM segments
+# so it takes 20 backends to cause a _.index rewrite.
+# Make it 25 to be safe.
+varnish v1 -vcl {
+	backend b00 { .host = "${bad_ip}"; }
+	backend b01 { .host = "${bad_ip}"; }
+	backend b02 { .host = "${bad_ip}"; }
+	backend b03 { .host = "${bad_ip}"; }
+	backend b04 { .host = "${bad_ip}"; }
+	backend b05 { .host = "${bad_ip}"; }
+	backend b06 { .host = "${bad_ip}"; }
+	backend b07 { .host = "${bad_ip}"; }
+	backend b08 { .host = "${bad_ip}"; }
+	backend b09 { .host = "${bad_ip}"; }
+	backend b10 { .host = "${bad_ip}"; }
+	backend b11 { .host = "${bad_ip}"; }
+	backend b12 { .host = "${bad_ip}"; }
+	backend b13 { .host = "${bad_ip}"; }
+	backend b14 { .host = "${bad_ip}"; }
+	backend b15 { .host = "${bad_ip}"; }
+	backend b16 { .host = "${bad_ip}"; }
+	backend b17 { .host = "${bad_ip}"; }
+	backend b18 { .host = "${bad_ip}"; }
+	backend b19 { .host = "${bad_ip}"; }
+	backend b20 { .host = "${bad_ip}"; }
+	backend b21 { .host = "${bad_ip}"; }
+	backend b22 { .host = "${bad_ip}"; }
+	backend b23 { .host = "${bad_ip}"; }
+	backend b24 { .host = "${bad_ip}"; }
+
+	sub vcl_recv {
+		set req.backend_hint = b00;
+		set req.backend_hint = b01;
+		set req.backend_hint = b02;
+		set req.backend_hint = b03;
+		set req.backend_hint = b04;
+		set req.backend_hint = b05;
+		set req.backend_hint = b06;
+		set req.backend_hint = b07;
+		set req.backend_hint = b08;
+		set req.backend_hint = b09;
+		set req.backend_hint = b10;
+		set req.backend_hint = b11;
+		set req.backend_hint = b12;
+		set req.backend_hint = b13;
+		set req.backend_hint = b14;
+		set req.backend_hint = b15;
+		set req.backend_hint = b16;
+		set req.backend_hint = b17;
+		set req.backend_hint = b18;
+		set req.backend_hint = b19;
+		set req.backend_hint = b20;
+		set req.backend_hint = b21;
+		set req.backend_hint = b22;
+		set req.backend_hint = b23;
+		set req.backend_hint = b24;
+	}
+}
+
+varnish v1 -cliok vcl.list
+
+process p1 -run
+
+varnish v1 -cliok "vcl.use vcl1"
+varnish v1 -cliok "vcl.discard vcl2"
+
+# Check that the _.index rewrite did happen
+process p1 {
+	nlines=`wc -l < ${tmpdir}/v1/_.vsm_child/_.index`
+	nminus=`grep -c '^-' ${tmpdir}/v1/_.vsm_child/_.index`
+	echo NLINES $nlines NMINUS $nminus
+	test $nminus -lt 25
+} -run


More information about the varnish-commit mailing list