[master] 7491696 add fail to dot graphs, improve vcl(label) a bit

Nils Goroll nils.goroll at uplex.de
Mon Oct 2 19:16:06 UTC 2017


commit 7491696a81ab01127cc336ae40b6bd4c7c0f55d8
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Mon Oct 2 21:15:20 2017 +0200

    add fail to dot graphs, improve vcl(label) a bit

diff --git a/doc/graphviz/cache_fetch.dot b/doc/graphviz/cache_fetch.dot
index 5e65495..eb68f72 100644
--- a/doc/graphviz/cache_fetch.dot
+++ b/doc/graphviz/cache_fetch.dot
@@ -39,7 +39,7 @@ digraph cache_fetch {
 		/* vbf_stp_startfetch() */
 		v_b_f [
 			    shape=record
-			    label="{vbf_stp_startfetch:|{vcl_backend_fetch\{\}|bereq.*}|{abandon|<fetch>fetch}}"
+			    label="{vbf_stp_startfetch:|{vcl_backend_fetch\{\}|bereq.*}|{fail|abandon|<fetch>fetch}}"
 		]
 		v_b_f:fetch:s -> v_b_hdrs [style=bold]
 		v_b_hdrs [ label="send bereq,\nread beresp (headers)"]
@@ -47,7 +47,7 @@ digraph cache_fetch {
 		v_b_hdrs -> v_b_e
 		v_b_r [
 			    shape=record
-			    label="{vbf_stp_startfetch:|{vcl_backend_response\{\}|{bereq.*|beresp.*}}|{{retry|{<max>max?|<retry>ok?}}|abandon|{deliver or pass|{<fetch_304>304?|<non_304>other?}}}}"
+			    label="{vbf_stp_startfetch:|{vcl_backend_response\{\}|{bereq.*|beresp.*}}|{fail|{retry|{<max>max?|<retry>ok?}}|abandon|{deliver or pass|{<fetch_304>304?|<non_304>other?}}}}"
 		]
 		v_b_r:retry -> v_b_r_retry [color=purple]
 		v_b_r:max -> v_b_e
@@ -96,7 +96,7 @@ digraph cache_fetch {
 		/* vbf_stp_error */
 		v_b_e [
 			    shape=record
-			    label="{vbf_stp_error:|{vcl_backend_error\{\}|{bereq.*|beresp.*}}|{{retry|{<max>max?|<retry>ok?}}|abandon|<deliver>deliver}}}"
+			    label="{vbf_stp_error:|{vcl_backend_error\{\}|{bereq.*|beresp.*}}|{{retry|{<fail>fail|<max>max?|<retry>ok?}}|abandon|<deliver>deliver}}}"
 			    ]
 		// v_b_e:deliver aka "backend synth" - goes into cache
 		v_b_e:deliver -> FETCH_DONE [label="\"backend synth\""]
diff --git a/doc/graphviz/cache_fetch.svg b/doc/graphviz/cache_fetch.svg
index f329e59..aeb38a9 100644
--- a/doc/graphviz/cache_fetch.svg
+++ b/doc/graphviz/cache_fetch.svg
@@ -4,274 +4,280 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: cache_fetch Pages: 1 -->
-<svg width="665pt" height="1052pt"
- viewBox="36.00 36.00 629.00 1015.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="720pt" height="1052pt"
+ viewBox="36.00 36.00 684.00 1015.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(40 1011.74)">
 <title>cache_fetch</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-975.74 589,-975.74 589,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-975.74 644,-975.74 644,4 -4,4"/>
 <g id="clust1" class="cluster"><title>cluster_backend</title>
-<polygon fill="aliceblue" stroke="aliceblue" points="8,-8 8,-963.74 577,-963.74 577,-8 8,-8"/>
+<polygon fill="aliceblue" stroke="aliceblue" points="8,-8 8,-963.74 632,-963.74 632,-8 8,-8"/>
 </g>
 <!-- RETRY -->
 <g id="node1" class="node"><title>RETRY</title>
-<text text-anchor="middle" x="383" y="-942.04" font-family="Times,serif" font-size="14.00">RETRY</text>
+<text text-anchor="middle" x="396" y="-942.04" font-family="Times,serif" font-size="14.00">RETRY</text>
 </g>
 <!-- v_b_f -->
 <g id="node4" class="node"><title>v_b_f</title>
-<polygon fill="none" stroke="black" points="157.5,-821.24 157.5,-890.24 346.5,-890.24 346.5,-821.24 157.5,-821.24"/>
-<text text-anchor="middle" x="252" y="-875.04" font-family="Times,serif" font-size="14.00">vbf_stp_startfetch:</text>
-<polyline fill="none" stroke="black" points="157.5,-867.24 346.5,-867.24 "/>
-<text text-anchor="middle" x="223.5" y="-852.04" font-family="Times,serif" font-size="14.00">vcl_backend_fetch{}</text>
-<polyline fill="none" stroke="black" points="289.5,-844.24 289.5,-867.24 "/>
-<text text-anchor="middle" x="318" y="-852.04" font-family="Times,serif" font-size="14.00">bereq.*</text>
-<polyline fill="none" stroke="black" points="157.5,-844.24 346.5,-844.24 "/>
-<text text-anchor="middle" x="209" y="-829.04" font-family="Times,serif" font-size="14.00">abandon</text>
-<polyline fill="none" stroke="black" points="260.5,-821.24 260.5,-844.24 "/>
-<text text-anchor="middle" x="303.5" y="-829.04" font-family="Times,serif" font-size="14.00">fetch</text>
+<polygon fill="none" stroke="black" points="160.5,-821.24 160.5,-890.24 357.5,-890.24 357.5,-821.24 160.5,-821.24"/>
+<text text-anchor="middle" x="259" y="-875.04" font-family="Times,serif" font-size="14.00">vbf_stp_startfetch:</text>
+<polyline fill="none" stroke="black" points="160.5,-867.24 357.5,-867.24 "/>
+<text text-anchor="middle" x="229.5" y="-852.04" font-family="Times,serif" font-size="14.00">vcl_backend_fetch{}</text>
+<polyline fill="none" stroke="black" points="298.5,-844.24 298.5,-867.24 "/>
+<text text-anchor="middle" x="328" y="-852.04" font-family="Times,serif" font-size="14.00">bereq.*</text>
+<polyline fill="none" stroke="black" points="160.5,-844.24 357.5,-844.24 "/>
+<text text-anchor="middle" x="186.5" y="-829.04" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="212.5,-821.24 212.5,-844.24 "/>
+<text text-anchor="middle" x="254" y="-829.04" font-family="Times,serif" font-size="14.00">abandon</text>
+<polyline fill="none" stroke="black" points="295.5,-821.24 295.5,-844.24 "/>
+<text text-anchor="middle" x="326.5" y="-829.04" font-family="Times,serif" font-size="14.00">fetch</text>
 </g>
 <!-- RETRY->v_b_f -->
 <g id="edge4" class="edge"><title>RETRY->v_b_f</title>
-<path fill="none" stroke="purple" d="M357.431,-927.564C343.989,-918.534 326.918,-907.067 310.449,-896.003"/>
-<polygon fill="purple" stroke="purple" points="312.166,-892.941 301.914,-890.27 308.263,-898.752 312.166,-892.941"/>
+<path fill="none" stroke="purple" d="M369.26,-927.564C355.073,-918.451 337.021,-906.856 319.652,-895.699"/>
+<polygon fill="purple" stroke="purple" points="321.505,-892.73 311.2,-890.27 317.722,-898.619 321.505,-892.73"/>
 </g>
 <!-- v_b_f_BGFETCH -->
 <g id="node2" class="node"><title>v_b_f_BGFETCH</title>
-<polygon fill="turquoise" stroke="turquoise" points="334,-963.74 256,-963.74 256,-927.74 334,-927.74 334,-963.74"/>
-<text text-anchor="middle" x="295" y="-942.04" font-family="Times,serif" font-size="14.00">BGFETCH</text>
+<polygon fill="turquoise" stroke="turquoise" points="345.5,-963.74 262.5,-963.74 262.5,-927.74 345.5,-927.74 345.5,-963.74"/>
+<text text-anchor="middle" x="304" y="-942.04" font-family="Times,serif" font-size="14.00">BGFETCH</text>
 </g>
 <!-- v_b_f_BGFETCH->v_b_f -->
 <g id="edge1" class="edge"><title>v_b_f_BGFETCH->v_b_f</title>
-<path fill="none" stroke="green" stroke-width="2" d="M286.505,-927.354C282.569,-919.301 277.703,-909.342 272.879,-899.468"/>
-<polygon fill="green" stroke="green" stroke-width="2" points="276.023,-897.93 268.488,-890.482 269.733,-901.003 276.023,-897.93"/>
+<path fill="none" stroke="green" stroke-width="2" d="M295.109,-927.354C290.991,-919.301 285.899,-909.342 280.85,-899.468"/>
+<polygon fill="green" stroke="green" stroke-width="2" points="283.924,-897.792 276.254,-890.482 277.691,-900.979 283.924,-897.792"/>
 </g>
 <!-- v_b_f_FETCH -->
 <g id="node3" class="node"><title>v_b_f_FETCH</title>
-<polygon fill="turquoise" stroke="turquoise" points="237.5,-963.74 178.5,-963.74 178.5,-927.74 237.5,-927.74 237.5,-963.74"/>
-<text text-anchor="middle" x="208" y="-942.04" font-family="Times,serif" font-size="14.00">FETCH</text>
+<polygon fill="turquoise" stroke="turquoise" points="244.5,-963.74 181.5,-963.74 181.5,-927.74 244.5,-927.74 244.5,-963.74"/>
+<text text-anchor="middle" x="213" y="-942.04" font-family="Times,serif" font-size="14.00">FETCH</text>
 </g>
 <!-- v_b_f_FETCH->v_b_f -->
 <g id="edge2" class="edge"><title>v_b_f_FETCH->v_b_f</title>
-<path fill="none" stroke="blue" stroke-width="2" d="M211.189,-927.354C214.348,-919.301 218.913,-909.342 223.888,-899.468"/>
-<polygon fill="blue" stroke="blue" stroke-width="2" points="227.052,-900.971 228.545,-890.482 220.836,-897.751 227.052,-900.971"/>
+<path fill="none" stroke="blue" stroke-width="2" d="M216.584,-927.354C219.926,-919.301 224.717,-909.342 229.917,-899.468"/>
+<polygon fill="blue" stroke="blue" stroke-width="2" points="233.099,-900.943 234.778,-890.482 226.942,-897.613 233.099,-900.943"/>
 </g>
 <!-- v_b_f_FETCH->v_b_f -->
 <g id="edge3" class="edge"><title>v_b_f_FETCH->v_b_f</title>
-<path fill="none" stroke="red" stroke-width="2" d="M222.197,-927.354C227.042,-919.383 232.376,-909.545 237.233,-899.771"/>
-<polygon fill="red" stroke="red" stroke-width="2" points="240.521,-901.01 241.713,-890.482 234.217,-897.969 240.521,-901.01"/>
+<path fill="none" stroke="red" stroke-width="2" d="M227.592,-927.354C232.67,-919.301 238.29,-909.342 243.412,-899.468"/>
+<polygon fill="red" stroke="red" stroke-width="2" points="246.566,-900.987 247.946,-890.482 240.317,-897.833 246.566,-900.987"/>
 </g>
 <!-- v_b_hdrs -->
 <g id="node5" class="node"><title>v_b_hdrs</title>
-<ellipse fill="none" stroke="black" cx="304" cy="-756.87" rx="94.0904" ry="26.7407"/>
-<text text-anchor="middle" x="304" y="-760.67" font-family="Times,serif" font-size="14.00">send bereq,</text>
-<text text-anchor="middle" x="304" y="-745.67" font-family="Times,serif" font-size="14.00">read beresp (headers)</text>
+<ellipse fill="none" stroke="black" cx="327" cy="-756.87" rx="96.7474" ry="26.7407"/>
+<text text-anchor="middle" x="327" y="-760.67" font-family="Times,serif" font-size="14.00">send bereq,</text>
+<text text-anchor="middle" x="327" y="-745.67" font-family="Times,serif" font-size="14.00">read beresp (headers)</text>
 </g>
 <!-- v_b_f->v_b_hdrs -->
 <g id="edge5" class="edge"><title>v_b_f:fetch:s->v_b_hdrs</title>
-<path fill="none" stroke="black" stroke-width="2" d="M304,-820.74C304,-812.127 304,-802.849 304,-794.136"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="307.5,-793.87 304,-783.87 300.5,-793.87 307.5,-793.87"/>
+<path fill="none" stroke="black" stroke-width="2" d="M327,-820.74C327,-812.127 327,-802.849 327,-794.136"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="330.5,-793.87 327,-783.87 323.5,-793.87 330.5,-793.87"/>
 </g>
 <!-- v_b_r -->
 <g id="node6" class="node"><title>v_b_r</title>
-<polygon fill="none" stroke="black" points="290.5,-577.5 290.5,-692.5 531.5,-692.5 531.5,-577.5 290.5,-577.5"/>
-<text text-anchor="middle" x="411" y="-677.3" font-family="Times,serif" font-size="14.00">vbf_stp_startfetch:</text>
-<polyline fill="none" stroke="black" points="290.5,-669.5 531.5,-669.5 "/>
-<text text-anchor="middle" x="373" y="-642.8" font-family="Times,serif" font-size="14.00">vcl_backend_response{}</text>
-<polyline fill="none" stroke="black" points="455.5,-623.5 455.5,-669.5 "/>
-<text text-anchor="middle" x="493.5" y="-654.3" font-family="Times,serif" font-size="14.00">bereq.*</text>
-<polyline fill="none" stroke="black" points="455.5,-646.5 531.5,-646.5 "/>
-<text text-anchor="middle" x="493.5" y="-631.3" font-family="Times,serif" font-size="14.00">beresp.*</text>
-<polyline fill="none" stroke="black" points="290.5,-623.5 531.5,-623.5 "/>
-<text text-anchor="middle" x="332" y="-608.3" font-family="Times,serif" font-size="14.00">retry</text>
-<polyline fill="none" stroke="black" points="290.5,-600.5 373.5,-600.5 "/>
-<text text-anchor="middle" x="314" y="-585.3" font-family="Times,serif" font-size="14.00">max?</text>
-<polyline fill="none" stroke="black" points="337.5,-577.5 337.5,-600.5 "/>
-<text text-anchor="middle" x="355.5" y="-585.3" font-family="Times,serif" font-size="14.00">ok?</text>
-<polyline fill="none" stroke="black" points="373.5,-577.5 373.5,-623.5 "/>
-<text text-anchor="middle" x="404.5" y="-596.8" font-family="Times,serif" font-size="14.00">abandon</text>
-<polyline fill="none" stroke="black" points="435.5,-577.5 435.5,-623.5 "/>
-<text text-anchor="middle" x="483.5" y="-608.3" font-family="Times,serif" font-size="14.00">deliver or pass</text>
-<polyline fill="none" stroke="black" points="435.5,-600.5 531.5,-600.5 "/>
-<text text-anchor="middle" x="457.5" y="-585.3" font-family="Times,serif" font-size="14.00">304?</text>
-<polyline fill="none" stroke="black" points="479.5,-577.5 479.5,-600.5 "/>
-<text text-anchor="middle" x="505.5" y="-585.3" font-family="Times,serif" font-size="14.00">other?</text>
+<polygon fill="none" stroke="black" points="304.5,-577.5 304.5,-692.5 589.5,-692.5 589.5,-577.5 304.5,-577.5"/>
+<text text-anchor="middle" x="447" y="-677.3" font-family="Times,serif" font-size="14.00">vbf_stp_startfetch:</text>
+<polyline fill="none" stroke="black" points="304.5,-669.5 589.5,-669.5 "/>
+<text text-anchor="middle" x="399.5" y="-642.8" font-family="Times,serif" font-size="14.00">vcl_backend_response{}</text>
+<polyline fill="none" stroke="black" points="494.5,-623.5 494.5,-669.5 "/>
+<text text-anchor="middle" x="542" y="-654.3" font-family="Times,serif" font-size="14.00">bereq.*</text>
+<polyline fill="none" stroke="black" points="494.5,-646.5 589.5,-646.5 "/>
+<text text-anchor="middle" x="542" y="-631.3" font-family="Times,serif" font-size="14.00">beresp.*</text>
+<polyline fill="none" stroke="black" points="304.5,-623.5 589.5,-623.5 "/>
+<text text-anchor="middle" x="322" y="-596.8" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="339.5,-577.5 339.5,-623.5 "/>
+<text text-anchor="middle" x="382" y="-608.3" font-family="Times,serif" font-size="14.00">retry</text>
+<polyline fill="none" stroke="black" points="339.5,-600.5 424.5,-600.5 "/>
+<text text-anchor="middle" x="363" y="-585.3" font-family="Times,serif" font-size="14.00">max?</text>
+<polyline fill="none" stroke="black" points="386.5,-577.5 386.5,-600.5 "/>
+<text text-anchor="middle" x="405.5" y="-585.3" font-family="Times,serif" font-size="14.00">ok?</text>
+<polyline fill="none" stroke="black" points="424.5,-577.5 424.5,-623.5 "/>
+<text text-anchor="middle" x="457.5" y="-596.8" font-family="Times,serif" font-size="14.00">abandon</text>
+<polyline fill="none" stroke="black" points="490.5,-577.5 490.5,-623.5 "/>
+<text text-anchor="middle" x="540" y="-608.3" font-family="Times,serif" font-size="14.00">deliver or pass</text>
+<polyline fill="none" stroke="black" points="490.5,-600.5 589.5,-600.5 "/>
+<text text-anchor="middle" x="513.5" y="-585.3" font-family="Times,serif" font-size="14.00">304?</text>
+<polyline fill="none" stroke="black" points="536.5,-577.5 536.5,-600.5 "/>
+<text text-anchor="middle" x="563" y="-585.3" font-family="Times,serif" font-size="14.00">other?</text>
 </g>
 <!-- v_b_hdrs->v_b_r -->
 <g id="edge6" class="edge"><title>v_b_hdrs->v_b_r</title>
-<path fill="none" stroke="black" stroke-width="2" d="M326.431,-730.741C334.497,-721.705 344.005,-711.053 353.68,-700.214"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="356.342,-702.489 360.39,-692.698 351.119,-697.827 356.342,-702.489"/>
+<path fill="none" stroke="black" stroke-width="2" d="M352.156,-730.741C361.289,-721.618 372.07,-710.848 383.029,-699.901"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="385.64,-702.241 390.241,-692.698 380.692,-697.289 385.64,-702.241"/>
 </g>
 <!-- v_b_e -->
 <g id="node7" class="node"><title>v_b_e</title>
-<polygon fill="none" stroke="black" points="160.5,-424.5 160.5,-539.5 359.5,-539.5 359.5,-424.5 160.5,-424.5"/>
-<text text-anchor="middle" x="260" y="-524.3" font-family="Times,serif" font-size="14.00">vbf_stp_error:</text>
-<polyline fill="none" stroke="black" points="160.5,-516.5 359.5,-516.5 "/>
-<text text-anchor="middle" x="227.5" y="-489.8" font-family="Times,serif" font-size="14.00">vcl_backend_error{}</text>
-<polyline fill="none" stroke="black" points="294.5,-470.5 294.5,-516.5 "/>
-<text text-anchor="middle" x="327" y="-501.3" font-family="Times,serif" font-size="14.00">bereq.*</text>
-<polyline fill="none" stroke="black" points="294.5,-493.5 359.5,-493.5 "/>
-<text text-anchor="middle" x="327" y="-478.3" font-family="Times,serif" font-size="14.00">beresp.*</text>
-<polyline fill="none" stroke="black" points="160.5,-470.5 359.5,-470.5 "/>
-<text text-anchor="middle" x="202" y="-455.3" font-family="Times,serif" font-size="14.00">retry</text>
-<polyline fill="none" stroke="black" points="160.5,-447.5 243.5,-447.5 "/>
-<text text-anchor="middle" x="184" y="-432.3" font-family="Times,serif" font-size="14.00">max?</text>
-<polyline fill="none" stroke="black" points="207.5,-424.5 207.5,-447.5 "/>
-<text text-anchor="middle" x="225.5" y="-432.3" font-family="Times,serif" font-size="14.00">ok?</text>
-<polyline fill="none" stroke="black" points="243.5,-424.5 243.5,-470.5 "/>
-<text text-anchor="middle" x="274.5" y="-443.8" font-family="Times,serif" font-size="14.00">abandon</text>
-<polyline fill="none" stroke="black" points="305.5,-424.5 305.5,-470.5 "/>
-<text text-anchor="middle" x="332.5" y="-443.8" font-family="Times,serif" font-size="14.00">deliver</text>
+<polygon fill="none" stroke="black" points="164,-424.5 164,-539.5 406,-539.5 406,-424.5 164,-424.5"/>
+<text text-anchor="middle" x="285" y="-524.3" font-family="Times,serif" font-size="14.00">vbf_stp_error:</text>
+<polyline fill="none" stroke="black" points="164,-516.5 406,-516.5 "/>
+<text text-anchor="middle" x="242.5" y="-489.8" font-family="Times,serif" font-size="14.00">vcl_backend_error{}</text>
+<polyline fill="none" stroke="black" points="321,-470.5 321,-516.5 "/>
+<text text-anchor="middle" x="363.5" y="-501.3" font-family="Times,serif" font-size="14.00">bereq.*</text>
+<polyline fill="none" stroke="black" points="321,-493.5 406,-493.5 "/>
+<text text-anchor="middle" x="363.5" y="-478.3" font-family="Times,serif" font-size="14.00">beresp.*</text>
+<polyline fill="none" stroke="black" points="164,-470.5 406,-470.5 "/>
+<text text-anchor="middle" x="224" y="-455.3" font-family="Times,serif" font-size="14.00">retry</text>
+<polyline fill="none" stroke="black" points="164,-447.5 284,-447.5 "/>
+<text text-anchor="middle" x="181.5" y="-432.3" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="199,-424.5 199,-447.5 "/>
+<text text-anchor="middle" x="222.5" y="-432.3" font-family="Times,serif" font-size="14.00">max?</text>
+<polyline fill="none" stroke="black" points="246,-424.5 246,-447.5 "/>
+<text text-anchor="middle" x="265" y="-432.3" font-family="Times,serif" font-size="14.00">ok?</text>
+<polyline fill="none" stroke="black" points="284,-424.5 284,-470.5 "/>
+<text text-anchor="middle" x="317" y="-443.8" font-family="Times,serif" font-size="14.00">abandon</text>
+<polyline fill="none" stroke="black" points="350,-424.5 350,-470.5 "/>
+<text text-anchor="middle" x="378" y="-443.8" font-family="Times,serif" font-size="14.00">deliver</text>
 </g>
 <!-- v_b_hdrs->v_b_e -->
 <g id="edge7" class="edge"><title>v_b_hdrs->v_b_e</title>
-<path fill="none" stroke="black" d="M292.876,-730.008C288.503,-718.822 283.855,-705.462 281,-693 270.192,-645.818 264.946,-591.408 262.4,-549.796"/>
-<polygon fill="black" stroke="black" points="265.893,-549.557 261.824,-539.775 258.904,-549.959 265.893,-549.557"/>
+<path fill="none" stroke="black" d="M310.848,-730.251C304.731,-719.217 298.422,-705.904 295,-693 282.598,-646.229 280.359,-591.583 281.083,-549.761"/>
+<polygon fill="black" stroke="black" points="284.584,-549.769 281.319,-539.69 277.586,-549.605 284.584,-549.769"/>
 </g>
 <!-- v_b_r->v_b_e -->
 <g id="edge9" class="edge"><title>v_b_r:max->v_b_e</title>
-<path fill="none" stroke="black" d="M314,-577C314,-567.432 311.87,-557.956 308.457,-548.915"/>
-<polygon fill="black" stroke="black" points="311.642,-547.462 304.47,-539.663 305.213,-550.232 311.642,-547.462"/>
+<path fill="none" stroke="black" d="M363,-577C363,-567.006 360.356,-557.506 356.043,-548.656"/>
+<polygon fill="black" stroke="black" points="358.941,-546.671 350.983,-539.676 352.843,-550.107 358.941,-546.671"/>
 </g>
 <!-- v_b_r_retry -->
 <g id="node8" class="node"><title>v_b_r_retry</title>
-<text text-anchor="middle" x="408" y="-478.3" font-family="Times,serif" font-size="14.00">RETRY</text>
+<text text-anchor="middle" x="457" y="-478.3" font-family="Times,serif" font-size="14.00">RETRY</text>
 </g>
 <!-- v_b_r->v_b_r_retry -->
 <g id="edge8" class="edge"><title>v_b_r:retry->v_b_r_retry</title>
-<path fill="none" stroke="purple" d="M355,-577C355,-562.528 374.302,-531.289 389.61,-508.791"/>
-<polygon fill="purple" stroke="purple" points="392.635,-510.57 395.44,-500.353 386.876,-506.591 392.635,-510.57"/>
+<path fill="none" stroke="purple" d="M405,-577C405,-562.594 423.938,-531.341 438.957,-508.822"/>
+<polygon fill="purple" stroke="purple" points="441.967,-510.618 444.677,-500.376 436.171,-506.693 441.967,-510.618"/>
 </g>
 <!-- vbf_stp_condfetch -->
 <g id="node9" class="node"><title>vbf_stp_condfetch</title>
-<polygon fill="none" stroke="grey" points="342.5,-313.5 342.5,-405.5 463.5,-405.5 463.5,-313.5 342.5,-313.5"/>
-<text text-anchor="middle" x="403" y="-390.3" font-family="Times,serif" font-size="14.00" fill="grey">vbf_stp_condfetch:</text>
-<polyline fill="none" stroke="grey" points="342.5,-382.5 463.5,-382.5 "/>
-<text text-anchor="middle" x="403" y="-367.3" font-family="Times,serif" font-size="14.00" fill="grey">copy obj attr</text>
-<polyline fill="none" stroke="grey" points="342.5,-359.5 463.5,-359.5 "/>
-<text text-anchor="middle" x="403" y="-344.3" font-family="Times,serif" font-size="14.00" fill="grey">steal body</text>
-<polyline fill="none" stroke="grey" points="342.5,-336.5 463.5,-336.5 "/>
-<text text-anchor="middle" x="382" y="-321.3" font-family="Times,serif" font-size="14.00" fill="grey">fetch_fail?</text>
-<polyline fill="none" stroke="grey" points="421.5,-313.5 421.5,-336.5 "/>
-<text text-anchor="middle" x="442.5" y="-321.3" font-family="Times,serif" font-size="14.00" fill="grey">ok?</text>
+<polygon fill="none" stroke="grey" points="389,-313.5 389,-405.5 517,-405.5 517,-313.5 389,-313.5"/>
+<text text-anchor="middle" x="453" y="-390.3" font-family="Times,serif" font-size="14.00" fill="grey">vbf_stp_condfetch:</text>
+<polyline fill="none" stroke="grey" points="389,-382.5 517,-382.5 "/>
+<text text-anchor="middle" x="453" y="-367.3" font-family="Times,serif" font-size="14.00" fill="grey">copy obj attr</text>
+<polyline fill="none" stroke="grey" points="389,-359.5 517,-359.5 "/>
+<text text-anchor="middle" x="453" y="-344.3" font-family="Times,serif" font-size="14.00" fill="grey">steal body</text>
+<polyline fill="none" stroke="grey" points="389,-336.5 517,-336.5 "/>
+<text text-anchor="middle" x="430.5" y="-321.3" font-family="Times,serif" font-size="14.00" fill="grey">fetch_fail?</text>
+<polyline fill="none" stroke="grey" points="472,-313.5 472,-336.5 "/>
+<text text-anchor="middle" x="494.5" y="-321.3" font-family="Times,serif" font-size="14.00" fill="grey">ok?</text>
 </g>
 <!-- v_b_r->vbf_stp_condfetch -->
 <g id="edge10" class="edge"><title>v_b_r:fetch_304:s->vbf_stp_condfetch</title>
-<path fill="none" stroke="black" d="M458,-577C458,-508.824 469.663,-488.299 447,-424 445.908,-420.901 444.621,-417.813 443.188,-414.764"/>
-<polygon fill="black" stroke="black" points="446.219,-413.006 438.496,-405.754 440.011,-416.24 446.219,-413.006"/>
+<path fill="none" stroke="black" d="M514,-577C514,-508.629 522.108,-487.979 498,-424 496.833,-420.902 495.477,-417.816 493.979,-414.767"/>
+<polygon fill="black" stroke="black" points="496.942,-412.889 489.106,-405.759 490.786,-416.22 496.942,-412.889"/>
 </g>
 <!-- vbf_stp_fetch -->
 <g id="node10" class="node"><title>vbf_stp_fetch</title>
-<polygon fill="none" stroke="grey" points="477.5,-436 477.5,-528 576.5,-528 576.5,-436 477.5,-436"/>
-<text text-anchor="middle" x="527" y="-512.8" font-family="Times,serif" font-size="14.00" fill="grey">vbf_stp_fetch:</text>
-<polyline fill="none" stroke="grey" points="477.5,-505 576.5,-505 "/>
-<text text-anchor="middle" x="527" y="-489.8" font-family="Times,serif" font-size="14.00" fill="grey">setup VFPs</text>
-<polyline fill="none" stroke="grey" points="477.5,-482 576.5,-482 "/>
-<text text-anchor="middle" x="527" y="-466.8" font-family="Times,serif" font-size="14.00" fill="grey">get object</text>
-<polyline fill="none" stroke="grey" points="477.5,-459 576.5,-459 "/>
-<text text-anchor="middle" x="502" y="-443.8" font-family="Times,serif" font-size="14.00" fill="grey">error?</text>
-<polyline fill="none" stroke="grey" points="526.5,-436 526.5,-459 "/>
-<text text-anchor="middle" x="551.5" y="-443.8" font-family="Times,serif" font-size="14.00" fill="grey">body?</text>
+<polygon fill="none" stroke="grey" points="528.5,-436 528.5,-528 631.5,-528 631.5,-436 528.5,-436"/>
+<text text-anchor="middle" x="580" y="-512.8" font-family="Times,serif" font-size="14.00" fill="grey">vbf_stp_fetch:</text>
+<polyline fill="none" stroke="grey" points="528.5,-505 631.5,-505 "/>
+<text text-anchor="middle" x="580" y="-489.8" font-family="Times,serif" font-size="14.00" fill="grey">setup VFPs</text>
+<polyline fill="none" stroke="grey" points="528.5,-482 631.5,-482 "/>
+<text text-anchor="middle" x="580" y="-466.8" font-family="Times,serif" font-size="14.00" fill="grey">get object</text>
+<polyline fill="none" stroke="grey" points="528.5,-459 631.5,-459 "/>
+<text text-anchor="middle" x="553.5" y="-443.8" font-family="Times,serif" font-size="14.00" fill="grey">error?</text>
+<polyline fill="none" stroke="grey" points="578.5,-436 578.5,-459 "/>
+<text text-anchor="middle" x="605" y="-443.8" font-family="Times,serif" font-size="14.00" fill="grey">body?</text>
 </g>
 <!-- v_b_r->vbf_stp_fetch -->
 <g id="edge11" class="edge"><title>v_b_r:non_304:s->vbf_stp_fetch</title>
-<path fill="none" stroke="black" d="M506,-577C506,-564.333 507.839,-550.932 510.428,-538.341"/>
-<polygon fill="black" stroke="black" points="513.874,-538.969 512.645,-528.446 507.043,-537.439 513.874,-538.969"/>
+<path fill="none" stroke="black" d="M563,-577C563,-564.307 564.52,-550.801 566.65,-538.103"/>
+<polygon fill="black" stroke="black" points="570.119,-538.59 568.472,-528.124 563.233,-537.332 570.119,-538.59"/>
 </g>
 <!-- FETCH_DONE -->
 <g id="node13" class="node"><title>FETCH_DONE</title>
-<polygon fill="turquoise" stroke="turquoise" points="370,-44 266,-44 266,-8 370,-8 370,-44"/>
-<text text-anchor="middle" x="318" y="-22.3" font-family="Times,serif" font-size="14.00">FETCH_DONE</text>
+<polygon fill="turquoise" stroke="turquoise" points="420.5,-44 309.5,-44 309.5,-8 420.5,-8 420.5,-44"/>
+<text text-anchor="middle" x="365" y="-22.3" font-family="Times,serif" font-size="14.00">FETCH_DONE</text>
 </g>
 <!-- v_b_e->FETCH_DONE -->
 <g id="edge18" class="edge"><title>v_b_e:deliver->FETCH_DONE</title>
-<path fill="none" stroke="black" d="M333,-424C333,-309.281 283.017,-283.284 293,-169 296.516,-128.756 305.534,-82.8201 311.72,-54.3619"/>
-<polygon fill="black" stroke="black" points="315.19,-54.8792 313.935,-44.359 308.356,-53.3659 315.19,-54.8792"/>
-<text text-anchor="middle" x="338.5" y="-172.8" font-family="Times,serif" font-size="14.00">"backend synth"</text>
+<path fill="none" stroke="black" d="M378,-424C378,-309.281 327.238,-283.213 338,-169 341.799,-128.68 351.538,-82.7642 358.218,-54.3309"/>
+<polygon fill="black" stroke="black" points="361.686,-54.8777 360.61,-44.3377 354.879,-53.2483 361.686,-54.8777"/>
+<text text-anchor="middle" x="386" y="-172.8" font-family="Times,serif" font-size="14.00">"backend synth"</text>
 </g>
 <!-- FETCH_FAIL -->
 <g id="node15" class="node"><title>FETCH_FAIL</title>
-<polygon fill="turquoise" stroke="turquoise" points="163,-266.5 67,-266.5 67,-230.5 163,-230.5 163,-266.5"/>
-<text text-anchor="middle" x="115" y="-244.8" font-family="Times,serif" font-size="14.00">FETCH_FAIL</text>
+<polygon fill="turquoise" stroke="turquoise" points="170.5,-266.5 67.5,-266.5 67.5,-230.5 170.5,-230.5 170.5,-266.5"/>
+<text text-anchor="middle" x="119" y="-244.8" font-family="Times,serif" font-size="14.00">FETCH_FAIL</text>
 </g>
 <!-- v_b_e->FETCH_FAIL -->
 <g id="edge20" class="edge"><title>v_b_e:max:s->FETCH_FAIL</title>
-<path fill="none" stroke="black" d="M184,-424C184,-368.018 152.909,-308.564 132.467,-275.525"/>
-<polygon fill="black" stroke="black" points="135.33,-273.503 127.019,-266.932 129.418,-277.251 135.33,-273.503"/>
+<path fill="none" stroke="black" d="M222,-424C222,-363.679 175.791,-305.878 145.274,-274.283"/>
+<polygon fill="black" stroke="black" points="147.416,-271.471 137.892,-266.829 142.442,-276.397 147.416,-271.471"/>
 </g>
 <!-- v_b_e_retry -->
 <g id="node16" class="node"><title>v_b_e_retry</title>
-<text text-anchor="middle" x="225" y="-244.8" font-family="Times,serif" font-size="14.00">RETRY</text>
+<text text-anchor="middle" x="265" y="-244.8" font-family="Times,serif" font-size="14.00">RETRY</text>
 </g>
 <!-- v_b_e->v_b_e_retry -->
 <g id="edge19" class="edge"><title>v_b_e:retry->v_b_e_retry</title>
-<path fill="none" stroke="purple" d="M225,-424C225,-372.06 225,-311.425 225,-277.036"/>
-<polygon fill="purple" stroke="purple" points="228.5,-276.837 225,-266.837 221.5,-276.837 228.5,-276.837"/>
+<path fill="none" stroke="purple" d="M265,-424C265,-372.06 265,-311.425 265,-277.036"/>
+<polygon fill="purple" stroke="purple" points="268.5,-276.837 265,-266.837 261.5,-276.837 268.5,-276.837"/>
 </g>
 <!-- vbf_stp_fetchend -->
 <g id="node12" class="node"><title>vbf_stp_fetchend</title>
-<polygon fill="none" stroke="grey" points="340.5,-81.5 340.5,-150.5 503.5,-150.5 503.5,-81.5 340.5,-81.5"/>
-<text text-anchor="middle" x="422" y="-135.3" font-family="Times,serif" font-size="14.00" fill="grey">vbf_stp_fetchend:</text>
-<polyline fill="none" stroke="grey" points="340.5,-127.5 503.5,-127.5 "/>
-<text text-anchor="middle" x="422" y="-112.3" font-family="Times,serif" font-size="14.00" fill="grey">finalize object and director</text>
-<polyline fill="none" stroke="grey" points="340.5,-104.5 503.5,-104.5 "/>
-<text text-anchor="middle" x="422" y="-89.3" font-family="Times,serif" font-size="14.00" fill="grey">done</text>
+<polygon fill="none" stroke="grey" points="388,-81.5 388,-150.5 556,-150.5 556,-81.5 388,-81.5"/>
+<text text-anchor="middle" x="472" y="-135.3" font-family="Times,serif" font-size="14.00" fill="grey">vbf_stp_fetchend:</text>
+<polyline fill="none" stroke="grey" points="388,-127.5 556,-127.5 "/>
+<text text-anchor="middle" x="472" y="-112.3" font-family="Times,serif" font-size="14.00" fill="grey">finalize object and director</text>
+<polyline fill="none" stroke="grey" points="388,-104.5 556,-104.5 "/>
+<text text-anchor="middle" x="472" y="-89.3" font-family="Times,serif" font-size="14.00" fill="grey">done</text>
 </g>
 <!-- vbf_stp_condfetch->vbf_stp_fetchend -->
 <g id="edge16" class="edge"><title>vbf_stp_condfetch:ok:s->vbf_stp_fetchend</title>
-<path fill="none" stroke="black" d="M443,-313C443,-287.28 403.096,-315.824 388,-295 359.366,-255.5 377.896,-198.542 396.959,-159.769"/>
-<polygon fill="black" stroke="black" points="400.102,-161.311 401.53,-150.813 393.867,-158.129 400.102,-161.311"/>
+<path fill="none" stroke="black" d="M495,-313C495,-286.857 454.4,-316.126 439,-295 410.205,-255.499 428.579,-198.293 447.436,-159.476"/>
+<polygon fill="black" stroke="black" points="450.578,-161.019 451.957,-150.514 444.328,-157.866 450.578,-161.019"/>
 </g>
 <!-- vbf_stp_fetchbody -->
 <g id="node11" class="node"><title>vbf_stp_fetchbody</title>
-<polygon fill="none" stroke="grey" points="397.5,-202.5 397.5,-294.5 556.5,-294.5 556.5,-202.5 397.5,-202.5"/>
-<text text-anchor="middle" x="477" y="-279.3" font-family="Times,serif" font-size="14.00" fill="grey">vbf_stp_fetchbody:</text>
-<polyline fill="none" stroke="grey" points="397.5,-271.5 556.5,-271.5 "/>
-<text text-anchor="middle" x="477" y="-256.3" font-family="Times,serif" font-size="14.00" fill="grey">get storage</text>
-<polyline fill="none" stroke="grey" points="397.5,-248.5 556.5,-248.5 "/>
-<text text-anchor="middle" x="477" y="-233.3" font-family="Times,serif" font-size="14.00" fill="grey">read body, run VFPs</text>
-<polyline fill="none" stroke="grey" points="397.5,-225.5 556.5,-225.5 "/>
-<text text-anchor="middle" x="434.5" y="-210.3" font-family="Times,serif" font-size="14.00" fill="grey">fetch_fail?</text>
-<polyline fill="none" stroke="grey" points="471.5,-202.5 471.5,-225.5 "/>
-<text text-anchor="middle" x="496" y="-210.3" font-family="Times,serif" font-size="14.00" fill="grey">error?</text>
-<polyline fill="none" stroke="grey" points="520.5,-202.5 520.5,-225.5 "/>
-<text text-anchor="middle" x="538.5" y="-210.3" font-family="Times,serif" font-size="14.00" fill="grey">ok?</text>
+<polygon fill="none" stroke="grey" points="448,-202.5 448,-294.5 612,-294.5 612,-202.5 448,-202.5"/>
+<text text-anchor="middle" x="530" y="-279.3" font-family="Times,serif" font-size="14.00" fill="grey">vbf_stp_fetchbody:</text>
+<polyline fill="none" stroke="grey" points="448,-271.5 612,-271.5 "/>
+<text text-anchor="middle" x="530" y="-256.3" font-family="Times,serif" font-size="14.00" fill="grey">get storage</text>
+<polyline fill="none" stroke="grey" points="448,-248.5 612,-248.5 "/>
+<text text-anchor="middle" x="530" y="-233.3" font-family="Times,serif" font-size="14.00" fill="grey">read body, run VFPs</text>
+<polyline fill="none" stroke="grey" points="448,-225.5 612,-225.5 "/>
+<text text-anchor="middle" x="486" y="-210.3" font-family="Times,serif" font-size="14.00" fill="grey">fetch_fail?</text>
+<polyline fill="none" stroke="grey" points="524,-202.5 524,-225.5 "/>
+<text text-anchor="middle" x="549" y="-210.3" font-family="Times,serif" font-size="14.00" fill="grey">error?</text>
+<polyline fill="none" stroke="grey" points="574,-202.5 574,-225.5 "/>
+<text text-anchor="middle" x="593" y="-210.3" font-family="Times,serif" font-size="14.00" fill="grey">ok?</text>
 </g>
 <!-- vbf_stp_fetch->vbf_stp_fetchbody -->
 <g id="edge13" class="edge"><title>vbf_stp_fetch:body:s->vbf_stp_fetchbody</title>
-<path fill="none" stroke="black" d="M552,-435C552,-388.245 531.268,-339.378 511.605,-303.543"/>
-<polygon fill="black" stroke="black" points="514.596,-301.722 506.642,-294.723 508.495,-305.154 514.596,-301.722"/>
+<path fill="none" stroke="black" d="M605,-435C605,-388.245 584.268,-339.378 564.605,-303.543"/>
+<polygon fill="black" stroke="black" points="567.596,-301.722 559.642,-294.723 561.495,-305.154 567.596,-301.722"/>
 </g>
 <!-- vbf_stp_fetch->vbf_stp_fetchend -->
 <g id="edge14" class="edge"><title>vbf_stp_fetch:body:s->vbf_stp_fetchend</title>
-<path fill="none" stroke="black" d="M552,-435C552,-331.258 603.409,-298.763 566,-202 556.486,-177.39 535.576,-159.54 512.562,-146.753"/>
-<polygon fill="black" stroke="black" points="514.141,-143.629 503.658,-142.097 510.897,-149.832 514.141,-143.629"/>
+<path fill="none" stroke="black" d="M605,-435C605,-331.201 658.43,-298.816 621,-202 611.149,-176.518 589.225,-158.384 565.146,-145.604"/>
+<polygon fill="black" stroke="black" points="566.706,-142.471 556.196,-141.134 563.578,-148.733 566.706,-142.471"/>
 </g>
 <!-- vbf_stp_fetchbody->vbf_stp_fetchend -->
 <g id="edge12" class="edge"><title>vbf_stp_fetchbody:ok:s->vbf_stp_fetchend</title>
-<path fill="none" stroke="black" d="M539,-202C539,-182.009 527.682,-166.232 512.087,-153.979"/>
-<polygon fill="black" stroke="black" points="513.748,-150.864 503.579,-147.89 509.674,-156.556 513.748,-150.864"/>
+<path fill="none" stroke="black" d="M593,-202C593,-181.262 580.952,-165.148 564.459,-152.805"/>
+<polygon fill="black" stroke="black" points="566.268,-149.802 556.039,-147.044 562.316,-155.579 566.268,-149.802"/>
 </g>
 <!-- vbf_stp_fetchend->FETCH_DONE -->
 <g id="edge15" class="edge"><title>vbf_stp_fetchend:done:s->FETCH_DONE</title>
-<path fill="none" stroke="black" d="M422,-81C422,-58.3033 402.249,-45.1333 379.962,-37.4971"/>
-<polygon fill="black" stroke="black" points="380.891,-34.1214 370.305,-34.5516 378.849,-40.8169 380.891,-34.1214"/>
+<path fill="none" stroke="black" d="M472,-81C472,-58.3323 452.624,-45.1781 430.363,-37.5453"/>
+<polygon fill="black" stroke="black" points="431.28,-34.1659 420.694,-34.6006 429.24,-40.8622 431.28,-34.1659"/>
 </g>
 <!-- error -->
 <g id="node14" class="node"><title>error</title>
-<text text-anchor="middle" x="115" y="-478.3" font-family="Times,serif" font-size="14.00">error</text>
+<text text-anchor="middle" x="119" y="-478.3" font-family="Times,serif" font-size="14.00">error</text>
 </g>
 <!-- error->FETCH_FAIL -->
 <g id="edge17" class="edge"><title>error->FETCH_FAIL</title>
-<path fill="none" stroke="black" d="M115,-463.977C115,-424.176 115,-324.764 115,-276.558"/>
-<polygon fill="black" stroke="black" points="118.5,-276.548 115,-266.548 111.5,-276.548 118.5,-276.548"/>
+<path fill="none" stroke="black" d="M119,-463.977C119,-424.176 119,-324.764 119,-276.558"/>
+<polygon fill="black" stroke="black" points="122.5,-276.548 119,-266.548 115.5,-276.548 122.5,-276.548"/>
 </g>
 <!-- abandon -->
 <g id="node17" class="node"><title>abandon</title>
-<text text-anchor="middle" x="39" y="-478.3" font-family="Times,serif" font-size="14.00">abandon</text>
+<text text-anchor="middle" x="41" y="-478.3" font-family="Times,serif" font-size="14.00">abandon</text>
 </g>
 <!-- abandon->FETCH_FAIL -->
 <g id="edge21" class="edge"><title>abandon->FETCH_FAIL</title>
-<path fill="none" stroke="black" d="M44.5885,-463.977C57.6824,-424.092 90.4285,-324.346 106.216,-276.255"/>
-<polygon fill="black" stroke="black" points="109.61,-277.141 109.403,-266.548 102.959,-274.957 109.61,-277.141"/>
+<path fill="none" stroke="black" d="M46.7355,-463.977C60.1741,-424.092 93.7819,-324.346 109.985,-276.255"/>
+<polygon fill="black" stroke="black" points="113.38,-277.142 113.256,-266.548 106.746,-274.907 113.38,-277.142"/>
 </g>
 </g>
 </svg>
diff --git a/doc/graphviz/cache_req_fsm.dot b/doc/graphviz/cache_req_fsm.dot
index a9bc854..bbec3e5 100644
--- a/doc/graphviz/cache_req_fsm.dot
+++ b/doc/graphviz/cache_req_fsm.dot
@@ -48,13 +48,13 @@ digraph cache_req_fsm {
 	*/
 
 	acceptor [shape=hexagon label="Request received"]
-	label_select [shape=hexagon label="Label selected"]
+	label_select [shape=hexagon label="LABEL"]
 	ESI_REQ [shape=hexagon label="ESI request"]
 	RESTART [shape=plaintext]
 
 	ESI_REQ -> recv
 	SYNTH [shape=plaintext]
-	LABEL [shape=plaintext]
+	FAIL [shape=plaintext]
 	acceptor -> recv [style=bold]
 	label_select -> recv [style=bold]
 
@@ -62,7 +62,7 @@ digraph cache_req_fsm {
 		/* cnt_deliver() */
 		deliver [
 			 shape=record
-			 label="{cnt_deliver:|Filter obj.-\>resp.|{vcl_deliver\{\}|{req.*|resp.*}}|{<restart>restart|<deliver>deliver|<synth>synth}}"
+			 label="{cnt_deliver:|Filter obj.-\>resp.|{vcl_deliver\{\}|{req.*|resp.*}}|{fail|<restart>restart|<deliver>deliver|<synth>synth}}"
 		]
 
 		deliver:deliver:s -> V1D_Deliver [style=bold,color=green]
@@ -79,9 +79,10 @@ digraph cache_req_fsm {
 	subgraph xcluster_synth {
 		synth [
 		       shape=record
-		       label="{cnt_synth:|{vcl_synth\{\}|{req.*|resp.*}}|{<del>deliver|<restart>restart}}"
+		       label="{cnt_synth:|{vcl_synth\{\}|{req.*|resp.*}}|{fail|<del>deliver|<restart>restart}}"
 		]
 
+		FAIL -> synth [color=purple]
 		SYNTH -> synth [color=purple]
 		synth:del:s -> V1D_Deliver [color=purple]
 	}
@@ -120,7 +121,7 @@ digraph cache_req_fsm {
 		]
 		lookup2 [
 			 shape=record
-			 label="{<top>cnt_lookup:|{vcl_hit\{\}|{req.*|obj.*}}|{<deliver>deliver|<miss>miss|restart|synth|<pass>pass}}"
+			 label="{<top>cnt_lookup:|{vcl_hit\{\}|{req.*|obj.*}}|{fail|<deliver>deliver|<miss>miss|restart|synth|<pass>pass}}"
 		]
 	}
 	lookup:busy:e -> lookup:top:e [label="(waitinglist)",
@@ -140,7 +141,7 @@ digraph cache_req_fsm {
 	subgraph xcluster_miss {
 		miss [
 		      shape=record
-		      label="{cnt_miss:|{vcl_miss\{\}|req.*}|{<fetch>fetch|<synth>synth|<rst>restart|<pass>pass}}"
+		      label="{cnt_miss:|{vcl_miss\{\}|req.*}|{fail|<fetch>fetch|<synth>synth|<rst>restart|<pass>pass}}"
 		]
 	}
 	miss:fetch:s -> FETCH [style=bold,color=blue]
@@ -150,7 +151,7 @@ digraph cache_req_fsm {
 	subgraph xcluster_pass {
 		pass [
 		      shape=record
-		      label="{cnt_pass:|{vcl_pass\{\}|req.*}|{<fetch>fetch|<synth>synth|<rst>restart}}"
+		      label="{cnt_pass:|{vcl_pass\{\}|req.*}|{fail|<fetch>fetch|<synth>synth|<rst>restart}}"
 		]
 	}
 	pass:fetch:s -> FETCH [style=bold, color=red]
@@ -159,7 +160,7 @@ digraph cache_req_fsm {
 	subgraph xcluster_pipe {
 		pipe [
 		      shape=record
-		      label="{cnt_pipe:|filter req.*-\>bereq.*|{vcl_pipe\{\}|{req.*|bereq.*}}|{<pipe>pipe|<synth>synth}}"
+		      label="{cnt_pipe:|filter req.*-\>bereq.*|{vcl_pipe\{\}|{req.*|bereq.*}}|{fail|<pipe>pipe|<synth>synth}}"
 		]
 		pipe_do [
 			 shape=ellipse
@@ -175,7 +176,7 @@ digraph cache_req_fsm {
 			shape=record
 			color=grey
 			fontcolor=grey
-			label="{cnt_restart:|{<ok>ok?|<max>max_restarts?}}"
+			label="{cnt_restart:|{fail|<ok>ok?|<max>max_restarts?}}"
 		]
 	}
 	RESTART -> restart [color=purple]
@@ -187,7 +188,7 @@ digraph cache_req_fsm {
 	subgraph xcluster_recv {
 		recv [
 		      shape=record
-		      label="{cnt_recv:|{vcl_recv\{\}|req.*}|{<hash>hash|<purge>purge|<pass>pass|<pipe>pipe|<synth>synth|<vcl>vcl}}"
+		      label="{cnt_recv:|{vcl_recv\{\}|req.*}|{fail|<hash>hash|<purge>purge|<pass>pass|<pipe>pipe|<synth>synth|<vcl>vcl}}"
 		      ]
 		recv:hash -> hash [style=bold,color=green]
 		hash [
@@ -205,13 +206,13 @@ digraph cache_req_fsm {
 	recv:purge:s -> hash [style=bold,color=purple]
 
 	recv:vcl:s -> vcl_label
-	vcl_label [label="LABEL",shape=plaintext]
+	vcl_label [label="switch to vcl\nLABEL",shape=plaintext]
 
 	/* cnt_purge */
 	subgraph xcluster_purge {
 		purge [
 		       shape=record
-		       label="{<top>cnt_purge:|{vcl_purge\{\}|req.*}|{<synth>synth|<restart>restart}}"
+		       label="{<top>cnt_purge:|{vcl_purge\{\}|req.*}|{fail|<synth>synth|<restart>restart}}"
 		]
 	}
 }
diff --git a/doc/graphviz/cache_req_fsm.svg b/doc/graphviz/cache_req_fsm.svg
index 26d4564..4afe57d 100644
--- a/doc/graphviz/cache_req_fsm.svg
+++ b/doc/graphviz/cache_req_fsm.svg
@@ -4,470 +4,494 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: cache_req_fsm Pages: 1 -->
-<svg width="935pt" height="1349pt"
- viewBox="18.00 18.00 917.00 1331.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="854pt" height="1349pt"
+ viewBox="18.00 18.00 835.50 1331.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(22 1327)">
 <title>cache_req_fsm</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-1309 895,-1309 895,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-1309 813.5,-1309 813.5,4 -4,4"/>
 <g id="clust3" class="cluster"><title>cluster_backend</title>
-<polygon fill="aliceblue" stroke="aliceblue" points="28,-299 28,-408 319,-408 319,-299 28,-299"/>
+<polygon fill="aliceblue" stroke="aliceblue" points="72,-299 72,-408 377,-408 377,-299 72,-299"/>
 </g>
 <!-- acceptor -->
 <g id="node1" class="node"><title>acceptor</title>
-<polygon fill="none" stroke="black" points="393.608,-1208.5 352.304,-1226.5 269.696,-1226.5 228.392,-1208.5 269.696,-1190.5 352.304,-1190.5 393.608,-1208.5"/>
-<text text-anchor="middle" x="311" y="-1204.8" font-family="Times,serif" font-size="14.00">Request received</text>
+<polygon fill="none" stroke="black" points="509.611,-1208.5 467.305,-1226.5 382.695,-1226.5 340.389,-1208.5 382.695,-1190.5 467.305,-1190.5 509.611,-1208.5"/>
+<text text-anchor="middle" x="425" y="-1204.8" font-family="Times,serif" font-size="14.00">Request received</text>
 </g>
 <!-- recv -->
 <g id="node5" class="node"><title>recv</title>
-<polygon fill="none" stroke="black" points="427.5,-1078.5 427.5,-1147.5 674.5,-1147.5 674.5,-1078.5 427.5,-1078.5"/>
-<text text-anchor="middle" x="551" y="-1132.3" font-family="Times,serif" font-size="14.00">cnt_recv:</text>
-<polyline fill="none" stroke="black" points="427.5,-1124.5 674.5,-1124.5 "/>
-<text text-anchor="middle" x="497.5" y="-1109.3" font-family="Times,serif" font-size="14.00">vcl_recv{}</text>
-<polyline fill="none" stroke="black" points="567.5,-1101.5 567.5,-1124.5 "/>
-<text text-anchor="middle" x="621" y="-1109.3" font-family="Times,serif" font-size="14.00">req.*</text>
-<polyline fill="none" stroke="black" points="427.5,-1101.5 674.5,-1101.5 "/>
-<text text-anchor="middle" x="448" y="-1086.3" font-family="Times,serif" font-size="14.00">hash</text>
-<polyline fill="none" stroke="black" points="468.5,-1078.5 468.5,-1101.5 "/>
-<text text-anchor="middle" x="492" y="-1086.3" font-family="Times,serif" font-size="14.00">purge</text>
-<polyline fill="none" stroke="black" points="515.5,-1078.5 515.5,-1101.5 "/>
-<text text-anchor="middle" x="535.5" y="-1086.3" font-family="Times,serif" font-size="14.00">pass</text>
-<polyline fill="none" stroke="black" points="555.5,-1078.5 555.5,-1101.5 "/>
-<text text-anchor="middle" x="575.5" y="-1086.3" font-family="Times,serif" font-size="14.00">pipe</text>
-<polyline fill="none" stroke="black" points="595.5,-1078.5 595.5,-1101.5 "/>
-<text text-anchor="middle" x="618.5" y="-1086.3" font-family="Times,serif" font-size="14.00">synth</text>
-<polyline fill="none" stroke="black" points="641.5,-1078.5 641.5,-1101.5 "/>
-<text text-anchor="middle" x="658" y="-1086.3" font-family="Times,serif" font-size="14.00">vcl</text>
+<polygon fill="none" stroke="black" points="349,-1078.5 349,-1147.5 641,-1147.5 641,-1078.5 349,-1078.5"/>
+<text text-anchor="middle" x="495" y="-1132.3" font-family="Times,serif" font-size="14.00">cnt_recv:</text>
+<polyline fill="none" stroke="black" points="349,-1124.5 641,-1124.5 "/>
+<text text-anchor="middle" x="430" y="-1109.3" font-family="Times,serif" font-size="14.00">vcl_recv{}</text>
+<polyline fill="none" stroke="black" points="511,-1101.5 511,-1124.5 "/>
+<text text-anchor="middle" x="576" y="-1109.3" font-family="Times,serif" font-size="14.00">req.*</text>
+<polyline fill="none" stroke="black" points="349,-1101.5 641,-1101.5 "/>
+<text text-anchor="middle" x="366.5" y="-1086.3" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="384,-1078.5 384,-1101.5 "/>
+<text text-anchor="middle" x="405.5" y="-1086.3" font-family="Times,serif" font-size="14.00">hash</text>
+<polyline fill="none" stroke="black" points="427,-1078.5 427,-1101.5 "/>
+<text text-anchor="middle" x="452" y="-1086.3" font-family="Times,serif" font-size="14.00">purge</text>
+<polyline fill="none" stroke="black" points="477,-1078.5 477,-1101.5 "/>
+<text text-anchor="middle" x="497.5" y="-1086.3" font-family="Times,serif" font-size="14.00">pass</text>
+<polyline fill="none" stroke="black" points="518,-1078.5 518,-1101.5 "/>
+<text text-anchor="middle" x="538.5" y="-1086.3" font-family="Times,serif" font-size="14.00">pipe</text>
+<polyline fill="none" stroke="black" points="559,-1078.5 559,-1101.5 "/>
+<text text-anchor="middle" x="583" y="-1086.3" font-family="Times,serif" font-size="14.00">synth</text>
+<polyline fill="none" stroke="black" points="607,-1078.5 607,-1101.5 "/>
+<text text-anchor="middle" x="624" y="-1086.3" font-family="Times,serif" font-size="14.00">vcl</text>
 </g>
 <!-- acceptor->recv -->
 <g id="edge2" class="edge"><title>acceptor->recv</title>
-<path fill="none" stroke="black" stroke-width="2" d="M353.631,-1190.89C381.823,-1179.91 419.947,-1165.06 455.173,-1151.33"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="456.49,-1154.58 464.537,-1147.68 453.949,-1148.05 456.49,-1154.58"/>
+<path fill="none" stroke="black" stroke-width="2" d="M437.839,-1190.35C445.087,-1180.67 454.488,-1168.11 463.566,-1155.99"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="466.577,-1157.8 469.769,-1147.7 460.974,-1153.61 466.577,-1157.8"/>
 </g>
 <!-- label_select -->
 <g id="node2" class="node"><title>label_select</title>
-<polygon fill="none" stroke="black" points="554.093,-1208.5 518.547,-1226.5 447.453,-1226.5 411.907,-1208.5 447.453,-1190.5 518.547,-1190.5 554.093,-1208.5"/>
-<text text-anchor="middle" x="483" y="-1204.8" font-family="Times,serif" font-size="14.00">Label selected</text>
+<polygon fill="none" stroke="black" points="624.063,-1208.5 600.031,-1226.5 551.969,-1226.5 527.937,-1208.5 551.969,-1190.5 600.031,-1190.5 624.063,-1208.5"/>
+<text text-anchor="middle" x="576" y="-1204.8" font-family="Times,serif" font-size="14.00">LABEL</text>
 </g>
 <!-- label_select->recv -->
 <g id="edge3" class="edge"><title>label_select->recv</title>
-<path fill="none" stroke="black" stroke-width="2" d="M495.472,-1190.35C502.513,-1180.67 511.645,-1168.11 520.464,-1155.99"/>
-<polygon fill="black" stroke="black" stroke-width="2" points="523.438,-1157.85 526.489,-1147.7 517.777,-1153.73 523.438,-1157.85"/>
+<path fill="none" stroke="black" stroke-width="2" d="M561.143,-1190.35C552.596,-1180.48 541.459,-1167.63 530.768,-1155.29"/>
+<polygon fill="black" stroke="black" stroke-width="2" points="533.39,-1152.97 524.196,-1147.7 528.099,-1157.55 533.39,-1152.97"/>
 </g>
 <!-- ESI_REQ -->
 <g id="node3" class="node"><title>ESI_REQ</title>
-<polygon fill="none" stroke="black" points="692.078,-1208.5 662.039,-1226.5 601.961,-1226.5 571.922,-1208.5 601.961,-1190.5 662.039,-1190.5 692.078,-1208.5"/>
-<text text-anchor="middle" x="632" y="-1204.8" font-family="Times,serif" font-size="14.00">ESI request</text>
+<polygon fill="none" stroke="black" points="322.082,-1208.5 291.041,-1226.5 228.959,-1226.5 197.918,-1208.5 228.959,-1190.5 291.041,-1190.5 322.082,-1208.5"/>
+<text text-anchor="middle" x="260" y="-1204.8" font-family="Times,serif" font-size="14.00">ESI request</text>
 </g>
 <!-- ESI_REQ->recv -->
 <g id="edge1" class="edge"><title>ESI_REQ->recv</title>
-<path fill="none" stroke="black" d="M617.143,-1190.35C608.596,-1180.48 597.459,-1167.63 586.768,-1155.29"/>
-<polygon fill="black" stroke="black" points="589.39,-1152.97 580.196,-1147.7 584.099,-1157.55 589.39,-1152.97"/>
+<path fill="none" stroke="black" d="M295.947,-1193.2C324.039,-1182.02 364.402,-1165.96 401.449,-1151.22"/>
+<polygon fill="black" stroke="black" points="402.789,-1154.46 410.786,-1147.51 400.201,-1147.95 402.789,-1154.46"/>
 </g>
 <!-- RESTART -->
 <g id="node4" class="node"><title>RESTART</title>
-<text text-anchor="middle" x="774" y="-1283.3" font-family="Times,serif" font-size="14.00">RESTART</text>
+<text text-anchor="middle" x="726" y="-1283.3" font-family="Times,serif" font-size="14.00">RESTART</text>
 </g>
 <!-- restart -->
 <g id="node24" class="node"><title>restart</title>
-<polygon fill="none" stroke="grey" points="710,-1185.5 710,-1231.5 838,-1231.5 838,-1185.5 710,-1185.5"/>
-<text text-anchor="middle" x="774" y="-1216.3" font-family="Times,serif" font-size="14.00" fill="grey">cnt_restart:</text>
-<polyline fill="none" stroke="grey" points="710,-1208.5 838,-1208.5 "/>
-<text text-anchor="middle" x="728" y="-1193.3" font-family="Times,serif" font-size="14.00" fill="grey">ok?</text>
-<polyline fill="none" stroke="grey" points="746,-1185.5 746,-1208.5 "/>
-<text text-anchor="middle" x="792" y="-1193.3" font-family="Times,serif" font-size="14.00" fill="grey">max_restarts?</text>
+<polygon fill="none" stroke="grey" points="642.5,-1185.5 642.5,-1231.5 809.5,-1231.5 809.5,-1185.5 642.5,-1185.5"/>
+<text text-anchor="middle" x="726" y="-1216.3" font-family="Times,serif" font-size="14.00" fill="grey">cnt_restart:</text>
+<polyline fill="none" stroke="grey" points="642.5,-1208.5 809.5,-1208.5 "/>
+<text text-anchor="middle" x="660" y="-1193.3" font-family="Times,serif" font-size="14.00" fill="grey">fail</text>
+<polyline fill="none" stroke="grey" points="677.5,-1185.5 677.5,-1208.5 "/>
+<text text-anchor="middle" x="696.5" y="-1193.3" font-family="Times,serif" font-size="14.00" fill="grey">ok?</text>
+<polyline fill="none" stroke="grey" points="715.5,-1185.5 715.5,-1208.5 "/>
+<text text-anchor="middle" x="762.5" y="-1193.3" font-family="Times,serif" font-size="14.00" fill="grey">max_restarts?</text>
 </g>
 <!-- RESTART->restart -->
-<g id="edge29" class="edge"><title>RESTART->restart</title>
-<path fill="none" stroke="purple" d="M774,-1268.64C774,-1260.7 774,-1251.02 774,-1241.81"/>
-<polygon fill="purple" stroke="purple" points="777.5,-1241.74 774,-1231.74 770.5,-1241.74 777.5,-1241.74"/>
+<g id="edge30" class="edge"><title>RESTART->restart</title>
+<path fill="none" stroke="purple" d="M726,-1268.64C726,-1260.7 726,-1251.02 726,-1241.81"/>
+<polygon fill="purple" stroke="purple" points="729.5,-1241.74 726,-1231.74 722.5,-1241.74 729.5,-1241.74"/>
 </g>
 <!-- hash -->
 <g id="node26" class="node"><title>hash</title>
-<polygon fill="none" stroke="black" points="452,-971.5 452,-1040.5 574,-1040.5 574,-971.5 452,-971.5"/>
-<text text-anchor="middle" x="513" y="-1025.3" font-family="Times,serif" font-size="14.00">cnt_recv:</text>
-<polyline fill="none" stroke="black" points="452,-1017.5 574,-1017.5 "/>
-<text text-anchor="middle" x="491" y="-1002.3" font-family="Times,serif" font-size="14.00">vcl_hash{}</text>
-<polyline fill="none" stroke="black" points="530,-994.5 530,-1017.5 "/>
-<text text-anchor="middle" x="552" y="-1002.3" font-family="Times,serif" font-size="14.00">req.*</text>
-<polyline fill="none" stroke="black" points="452,-994.5 574,-994.5 "/>
-<text text-anchor="middle" x="513" y="-979.3" font-family="Times,serif" font-size="14.00">lookup</text>
+<polygon fill="none" stroke="black" points="411.5,-971.5 411.5,-1040.5 538.5,-1040.5 538.5,-971.5 411.5,-971.5"/>
+<text text-anchor="middle" x="475" y="-1025.3" font-family="Times,serif" font-size="14.00">cnt_recv:</text>
+<polyline fill="none" stroke="black" points="411.5,-1017.5 538.5,-1017.5 "/>
+<text text-anchor="middle" x="452" y="-1002.3" font-family="Times,serif" font-size="14.00">vcl_hash{}</text>
+<polyline fill="none" stroke="black" points="492.5,-994.5 492.5,-1017.5 "/>
+<text text-anchor="middle" x="515.5" y="-1002.3" font-family="Times,serif" font-size="14.00">req.*</text>
+<polyline fill="none" stroke="black" points="411.5,-994.5 538.5,-994.5 "/>
+<text text-anchor="middle" x="475" y="-979.3" font-family="Times,serif" font-size="14.00">lookup</text>
 </g>
 <!-- recv->hash -->
-<g id="edge32" class="edge"><title>recv:hash->hash</title>
-<path fill="none" stroke="green" stroke-width="2" d="M448,-1078C448,-1067.24 452.115,-1057.39 458.275,-1048.69"/>
-<polygon fill="green" stroke="green" stroke-width="2" points="461.169,-1050.68 464.739,-1040.7 455.728,-1046.27 461.169,-1050.68"/>
+<g id="edge33" class="edge"><title>recv:hash->hash</title>
+<path fill="none" stroke="green" stroke-width="2" d="M405,-1078C405,-1067 409.313,-1057.09 415.798,-1048.4"/>
+<polygon fill="green" stroke="green" stroke-width="2" points="418.48,-1050.65 422.303,-1040.77 413.153,-1046.11 418.48,-1050.65"/>
 </g>
 <!-- recv->hash -->
-<g id="edge33" class="edge"><title>recv:pipe->hash</title>
-<path fill="none" stroke="orange" stroke-width="2" d="M576,-1078C576,-1067.26 571.917,-1057.39 565.83,-1048.64"/>
-<polygon fill="orange" stroke="orange" stroke-width="2" points="568.407,-1046.25 559.447,-1040.6 562.924,-1050.6 568.407,-1046.25"/>
+<g id="edge34" class="edge"><title>recv:pipe->hash</title>
+<path fill="none" stroke="orange" stroke-width="2" d="M539,-1078C539,-1067.31 534.948,-1057.51 528.883,-1048.82"/>
+<polygon fill="orange" stroke="orange" stroke-width="2" points="531.49,-1046.47 522.518,-1040.83 526.017,-1050.84 531.49,-1046.47"/>
 </g>
 <!-- recv->hash -->
-<g id="edge34" class="edge"><title>recv:pass->hash</title>
-<path fill="none" stroke="red" stroke-width="2" d="M535,-1078C535,-1068.91 533.333,-1059.44 530.916,-1050.49"/>
-<polygon fill="red" stroke="red" stroke-width="2" points="534.182,-1049.2 527.918,-1040.66 527.487,-1051.24 534.182,-1049.2"/>
+<g id="edge35" class="edge"><title>recv:pass->hash</title>
+<path fill="none" stroke="red" stroke-width="2" d="M498,-1078C498,-1068.77 496.219,-1059.18 493.649,-1050.14"/>
+<polygon fill="red" stroke="red" stroke-width="2" points="496.976,-1049.06 490.596,-1040.6 490.309,-1051.19 496.976,-1049.06"/>
 </g>
 <!-- recv->hash -->
-<g id="edge39" class="edge"><title>recv:purge:s->hash</title>
-<path fill="none" stroke="purple" stroke-width="2" d="M492,-1078C492,-1068.94 493.592,-1059.49 495.898,-1050.55"/>
-<polygon fill="purple" stroke="purple" stroke-width="2" points="499.326,-1051.29 498.76,-1040.71 492.605,-1049.34 499.326,-1051.29"/>
+<g id="edge40" class="edge"><title>recv:purge:s->hash</title>
+<path fill="none" stroke="purple" stroke-width="2" d="M452,-1078C452,-1068.77 453.781,-1059.18 456.351,-1050.14"/>
+<polygon fill="purple" stroke="purple" stroke-width="2" points="459.691,-1051.19 459.404,-1040.6 453.024,-1049.06 459.691,-1051.19"/>
 </g>
 <!-- vcl_label -->
 <g id="node28" class="node"><title>vcl_label</title>
-<text text-anchor="middle" x="658" y="-1002.3" font-family="Times,serif" font-size="14.00">LABEL</text>
+<text text-anchor="middle" x="624" y="-1009.8" font-family="Times,serif" font-size="14.00">switch to vcl</text>
+<text text-anchor="middle" x="624" y="-994.8" font-family="Times,serif" font-size="14.00">LABEL</text>
 </g>
 <!-- recv->vcl_label -->
-<g id="edge40" class="edge"><title>recv:vcl:s->vcl_label</title>
-<path fill="none" stroke="black" d="M658,-1078C658,-1063.65 658,-1047.67 658,-1034.51"/>
-<polygon fill="black" stroke="black" points="661.5,-1034.22 658,-1024.22 654.5,-1034.22 661.5,-1034.22"/>
+<g id="edge41" class="edge"><title>recv:vcl:s->vcl_label</title>
+<path fill="none" stroke="black" d="M624,-1078C624,-1063.94 624,-1048.31 624,-1035.31"/>
+<polygon fill="black" stroke="black" points="627.5,-1035.09 624,-1025.09 620.5,-1035.09 627.5,-1035.09"/>
 </g>
 <!-- SYNTH -->
 <g id="node6" class="node"><title>SYNTH</title>
-<text text-anchor="middle" x="388" y="-313.3" font-family="Times,serif" font-size="14.00">SYNTH</text>
+<text text-anchor="middle" x="482" y="-313.3" font-family="Times,serif" font-size="14.00">SYNTH</text>
 </g>
 <!-- synth -->
 <g id="node12" class="node"><title>synth</title>
-<polygon fill="none" stroke="black" points="321.5,-158 321.5,-250 454.5,-250 454.5,-158 321.5,-158"/>
-<text text-anchor="middle" x="388" y="-234.8" font-family="Times,serif" font-size="14.00">cnt_synth:</text>
-<polyline fill="none" stroke="black" points="321.5,-227 454.5,-227 "/>
-<text text-anchor="middle" x="363" y="-200.3" font-family="Times,serif" font-size="14.00">vcl_synth{}</text>
-<polyline fill="none" stroke="black" points="404.5,-181 404.5,-227 "/>
-<text text-anchor="middle" x="429.5" y="-211.8" font-family="Times,serif" font-size="14.00">req.*</text>
-<polyline fill="none" stroke="black" points="404.5,-204 454.5,-204 "/>
-<text text-anchor="middle" x="429.5" y="-188.8" font-family="Times,serif" font-size="14.00">resp.*</text>
-<polyline fill="none" stroke="black" points="321.5,-181 454.5,-181 "/>
-<text text-anchor="middle" x="355.5" y="-165.8" font-family="Times,serif" font-size="14.00">deliver</text>
-<polyline fill="none" stroke="black" points="389.5,-158 389.5,-181 "/>
-<text text-anchor="middle" x="422" y="-165.8" font-family="Times,serif" font-size="14.00">restart</text>
+<polygon fill="none" stroke="black" points="294.5,-158 294.5,-250 435.5,-250 435.5,-158 294.5,-158"/>
+<text text-anchor="middle" x="365" y="-234.8" font-family="Times,serif" font-size="14.00">cnt_synth:</text>
+<polyline fill="none" stroke="black" points="294.5,-227 435.5,-227 "/>
+<text text-anchor="middle" x="338.5" y="-200.3" font-family="Times,serif" font-size="14.00">vcl_synth{}</text>
+<polyline fill="none" stroke="black" points="382.5,-181 382.5,-227 "/>
+<text text-anchor="middle" x="409" y="-211.8" font-family="Times,serif" font-size="14.00">req.*</text>
+<polyline fill="none" stroke="black" points="382.5,-204 435.5,-204 "/>
+<text text-anchor="middle" x="409" y="-188.8" font-family="Times,serif" font-size="14.00">resp.*</text>
+<polyline fill="none" stroke="black" points="294.5,-181 435.5,-181 "/>
+<text text-anchor="middle" x="312" y="-165.8" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="329.5,-158 329.5,-181 "/>
+<text text-anchor="middle" x="357.5" y="-165.8" font-family="Times,serif" font-size="14.00">deliver</text>
+<polyline fill="none" stroke="black" points="385.5,-158 385.5,-181 "/>
+<text text-anchor="middle" x="410.5" y="-165.8" font-family="Times,serif" font-size="14.00">restart</text>
 </g>
 <!-- SYNTH->synth -->
-<g id="edge9" class="edge"><title>SYNTH->synth</title>
-<path fill="none" stroke="purple" d="M388,-298.656C388,-288.254 388,-274.387 388,-260.518"/>
-<polygon fill="purple" stroke="purple" points="391.5,-260.468 388,-250.468 384.5,-260.468 391.5,-260.468"/>
+<g id="edge10" class="edge"><title>SYNTH->synth</title>
+<path fill="none" stroke="purple" d="M463.975,-298.9C452.08,-287.614 435.804,-272.173 419.887,-257.072"/>
+<polygon fill="purple" stroke="purple" points="422.28,-254.518 412.616,-250.174 417.462,-259.596 422.28,-254.518"/>
 </g>
-<!-- LABEL -->
-<g id="node7" class="node"><title>LABEL</title>
-<text text-anchor="middle" x="861" y="-1283.3" font-family="Times,serif" font-size="14.00">LABEL</text>
+<!-- FAIL -->
+<g id="node7" class="node"><title>FAIL</title>
+<text text-anchor="middle" x="404" y="-313.3" font-family="Times,serif" font-size="14.00">FAIL</text>
+</g>
+<!-- FAIL->synth -->
+<g id="edge9" class="edge"><title>FAIL->synth</title>
+<path fill="none" stroke="purple" d="M397.906,-298.656C394.216,-288.153 389.284,-274.117 384.364,-260.114"/>
+<polygon fill="purple" stroke="purple" points="387.592,-258.743 380.975,-250.468 380.988,-261.063 387.592,-258.743"/>
 </g>
 <!-- deliver -->
 <g id="node8" class="node"><title>deliver</title>
-<polygon fill="none" stroke="black" points="52,-146.5 52,-261.5 202,-261.5 202,-146.5 52,-146.5"/>
-<text text-anchor="middle" x="127" y="-246.3" font-family="Times,serif" font-size="14.00">cnt_deliver:</text>
-<polyline fill="none" stroke="black" points="52,-238.5 202,-238.5 "/>
-<text text-anchor="middle" x="127" y="-223.3" font-family="Times,serif" font-size="14.00">Filter obj.->resp.</text>
-<polyline fill="none" stroke="black" points="52,-215.5 202,-215.5 "/>
-<text text-anchor="middle" x="99.5" y="-188.8" font-family="Times,serif" font-size="14.00">vcl_deliver{}</text>
-<polyline fill="none" stroke="black" points="147,-169.5 147,-215.5 "/>
-<text text-anchor="middle" x="174.5" y="-200.3" font-family="Times,serif" font-size="14.00">req.*</text>
-<polyline fill="none" stroke="black" points="147,-192.5 202,-192.5 "/>
-<text text-anchor="middle" x="174.5" y="-177.3" font-family="Times,serif" font-size="14.00">resp.*</text>
-<polyline fill="none" stroke="black" points="52,-169.5 202,-169.5 "/>
-<text text-anchor="middle" x="77" y="-154.3" font-family="Times,serif" font-size="14.00">restart</text>
-<polyline fill="none" stroke="black" points="102,-146.5 102,-169.5 "/>
-<text text-anchor="middle" x="129" y="-154.3" font-family="Times,serif" font-size="14.00">deliver</text>
-<polyline fill="none" stroke="black" points="156,-146.5 156,-169.5 "/>
-<text text-anchor="middle" x="179" y="-154.3" font-family="Times,serif" font-size="14.00">synth</text>
+<polygon fill="none" stroke="black" points="87.5,-146.5 87.5,-261.5 276.5,-261.5 276.5,-146.5 87.5,-146.5"/>
+<text text-anchor="middle" x="182" y="-246.3" font-family="Times,serif" font-size="14.00">cnt_deliver:</text>
+<polyline fill="none" stroke="black" points="87.5,-238.5 276.5,-238.5 "/>
+<text text-anchor="middle" x="182" y="-223.3" font-family="Times,serif" font-size="14.00">Filter obj.->resp.</text>
+<polyline fill="none" stroke="black" points="87.5,-215.5 276.5,-215.5 "/>
+<text text-anchor="middle" x="145.5" y="-188.8" font-family="Times,serif" font-size="14.00">vcl_deliver{}</text>
+<polyline fill="none" stroke="black" points="203.5,-169.5 203.5,-215.5 "/>
+<text text-anchor="middle" x="240" y="-200.3" font-family="Times,serif" font-size="14.00">req.*</text>
+<polyline fill="none" stroke="black" points="203.5,-192.5 276.5,-192.5 "/>
+<text text-anchor="middle" x="240" y="-177.3" font-family="Times,serif" font-size="14.00">resp.*</text>
+<polyline fill="none" stroke="black" points="87.5,-169.5 276.5,-169.5 "/>
+<text text-anchor="middle" x="105" y="-154.3" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="122.5,-146.5 122.5,-169.5 "/>
+<text text-anchor="middle" x="147.5" y="-154.3" font-family="Times,serif" font-size="14.00">restart</text>
+<polyline fill="none" stroke="black" points="172.5,-146.5 172.5,-169.5 "/>
+<text text-anchor="middle" x="200.5" y="-154.3" font-family="Times,serif" font-size="14.00">deliver</text>
+<polyline fill="none" stroke="black" points="228.5,-146.5 228.5,-169.5 "/>
+<text text-anchor="middle" x="252.5" y="-154.3" font-family="Times,serif" font-size="14.00">synth</text>
 </g>
 <!-- V1D_Deliver -->
 <g id="node9" class="node"><title>V1D_Deliver</title>
-<ellipse fill="none" stroke="black" cx="218" cy="-91" rx="58.4896" ry="18"/>
-<text text-anchor="middle" x="218" y="-87.3" font-family="Times,serif" font-size="14.00">V1D_Deliver</text>
+<ellipse fill="none" stroke="black" cx="266" cy="-91" rx="61.99" ry="18"/>
+<text text-anchor="middle" x="266" y="-87.3" font-family="Times,serif" font-size="14.00">V1D_Deliver</text>
 </g>
 <!-- deliver->V1D_Deliver -->
 <g id="edge4" class="edge"><title>deliver:deliver:s->V1D_Deliver</title>
-<path fill="none" stroke="green" stroke-width="2" d="M129,-146C120.464,-124.058 135.992,-110.783 156.6,-102.889"/>
-<polygon fill="green" stroke="green" stroke-width="2" points="157.983,-106.117 166.358,-99.6289 155.764,-99.4781 157.983,-106.117"/>
+<path fill="none" stroke="green" stroke-width="2" d="M201,-146C193.329,-129.994 200.733,-117.823 213.149,-109.125"/>
+<polygon fill="green" stroke="green" stroke-width="2" points="215.119,-112.026 221.924,-103.906 211.54,-106.01 215.119,-112.026"/>
 </g>
 <!-- deliver->V1D_Deliver -->
 <g id="edge5" class="edge"><title>deliver:deliver:s->V1D_Deliver</title>
-<path fill="none" stroke="red" stroke-width="2" d="M129,-146C129,-126.762 144.387,-114.186 162.366,-106.059"/>
-<polygon fill="red" stroke="red" stroke-width="2" points="163.969,-109.186 171.936,-102.202 161.352,-102.694 163.969,-109.186"/>
+<path fill="none" stroke="red" stroke-width="2" d="M201,-146C201,-131.338 210.906,-119.894 222.983,-111.39"/>
+<polygon fill="red" stroke="red" stroke-width="2" points="224.998,-114.258 231.597,-105.969 221.269,-108.334 224.998,-114.258"/>
 </g>
 <!-- deliver->V1D_Deliver -->
 <g id="edge6" class="edge"><title>deliver:deliver:s->V1D_Deliver</title>
-<path fill="none" stroke="blue" stroke-width="2" d="M129,-146C135.734,-128.692 152.403,-116.777 169.689,-108.642"/>
-<polygon fill="blue" stroke="blue" stroke-width="2" points="171.499,-111.673 179.298,-104.501 168.729,-105.244 171.499,-111.673"/>
+<path fill="none" stroke="blue" stroke-width="2" d="M201,-146C207.57,-132.292 220.401,-121.397 233.172,-113.087"/>
+<polygon fill="blue" stroke="blue" stroke-width="2" points="235.214,-115.942 241.927,-107.745 231.567,-109.966 235.214,-115.942"/>
 </g>
 <!-- DONE -->
 <g id="node11" class="node"><title>DONE</title>
-<ellipse fill="none" stroke="black" cx="559" cy="-18" rx="35.194" ry="18"/>
-<text text-anchor="middle" x="559" y="-14.3" font-family="Times,serif" font-size="14.00">DONE</text>
+<ellipse fill="none" stroke="black" cx="484" cy="-18" rx="37.0935" ry="18"/>
+<text text-anchor="middle" x="484" y="-14.3" font-family="Times,serif" font-size="14.00">DONE</text>
 </g>
 <!-- V1D_Deliver->DONE -->
 <g id="edge8" class="edge"><title>V1D_Deliver->DONE</title>
-<path fill="none" stroke="black" d="M265.057,-80.2023C331.862,-66.2927 453.163,-41.0364 517.053,-27.7339"/>
-<polygon fill="black" stroke="black" points="518.093,-31.0924 527.17,-25.6274 516.666,-24.2394 518.093,-31.0924"/>
+<path fill="none" stroke="black" d="M305.478,-77.1424C344.841,-64.3223 404.965,-44.7407 444.379,-31.9042"/>
+<polygon fill="black" stroke="black" points="445.503,-35.219 453.928,-28.7942 443.335,-28.5631 445.503,-35.219"/>
 </g>
 <!-- stream -->
 <g id="node10" class="node"><title>stream</title>
-<ellipse fill="turquoise" stroke="turquoise" cx="262" cy="-204" rx="41.9398" ry="26.7407"/>
-<text text-anchor="middle" x="262" y="-207.8" font-family="Times,serif" font-size="14.00">stream?</text>
-<text text-anchor="middle" x="262" y="-192.8" font-family="Times,serif" font-size="14.00">body</text>
+<ellipse fill="turquoise" stroke="turquoise" cx="495" cy="-204" rx="41.9398" ry="26.7407"/>
+<text text-anchor="middle" x="495" y="-207.8" font-family="Times,serif" font-size="14.00">stream?</text>
+<text text-anchor="middle" x="495" y="-192.8" font-family="Times,serif" font-size="14.00">body</text>
 </g>
 <!-- stream->V1D_Deliver -->
 <g id="edge7" class="edge"><title>stream->V1D_Deliver</title>
-<path fill="none" stroke="black" stroke-dasharray="1,5" d="M252.016,-177.812C244.999,-160.11 235.629,-136.473 228.5,-118.489"/>
-<polygon fill="black" stroke="black" points="231.738,-117.16 224.8,-109.154 225.231,-119.74 231.738,-117.16"/>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M478.487,-179.086C469.481,-167.628 457.435,-154.568 444,-146 409.157,-123.779 364.67,-110.28 328.888,-102.336"/>
+<polygon fill="black" stroke="black" points="329.551,-98.8986 319.041,-100.24 328.093,-105.745 329.551,-98.8986"/>
 </g>
 <!-- synth->V1D_Deliver -->
-<g id="edge10" class="edge"><title>synth:del:s->V1D_Deliver</title>
-<path fill="none" stroke="purple" d="M355,-157C355,-122.348 318.783,-106.146 283.591,-98.5822"/>
-<polygon fill="purple" stroke="purple" points="284.206,-95.1365 273.723,-96.6697 282.874,-102.009 284.206,-95.1365"/>
+<g id="edge11" class="edge"><title>synth:del:s->V1D_Deliver</title>
+<path fill="none" stroke="purple" d="M357,-157C357,-134.168 337.797,-118.597 317.034,-108.433"/>
+<polygon fill="purple" stroke="purple" points="318.327,-105.177 307.771,-104.27 315.458,-111.562 318.327,-105.177"/>
 </g>
 <!-- see backend graph -->
 <g id="node13" class="node"><title>see backend graph</title>
-<text text-anchor="middle" x="260" y="-386.3" font-family="Times,serif" font-size="14.00">see backend graph</text>
+<text text-anchor="middle" x="316" y="-386.3" font-family="Times,serif" font-size="14.00">see backend graph</text>
 </g>
 <!-- BGFETCH -->
 <g id="node14" class="node"><title>BGFETCH</title>
-<polygon fill="turquoise" stroke="turquoise" points="106,-408 28,-408 28,-372 106,-372 106,-408"/>
-<text text-anchor="middle" x="67" y="-386.3" font-family="Times,serif" font-size="14.00">BGFETCH</text>
+<polygon fill="turquoise" stroke="turquoise" points="155.5,-408 72.5,-408 72.5,-372 155.5,-372 155.5,-408"/>
+<text text-anchor="middle" x="114" y="-386.3" font-family="Times,serif" font-size="14.00">BGFETCH</text>
 </g>
 <!-- FETCH -->
 <g id="node15" class="node"><title>FETCH</title>
-<polygon fill="turquoise" stroke="turquoise" points="183.5,-408 124.5,-408 124.5,-372 183.5,-372 183.5,-408"/>
-<text text-anchor="middle" x="154" y="-386.3" font-family="Times,serif" font-size="14.00">FETCH</text>
+<polygon fill="turquoise" stroke="turquoise" points="236.5,-408 173.5,-408 173.5,-372 236.5,-372 236.5,-408"/>
+<text text-anchor="middle" x="205" y="-386.3" font-family="Times,serif" font-size="14.00">FETCH</text>
 </g>
 <!-- FETCH_DONE -->
 <g id="node16" class="node"><title>FETCH_DONE</title>
-<polygon fill="turquoise" stroke="turquoise" points="179,-335 75,-335 75,-299 179,-299 179,-335"/>
-<text text-anchor="middle" x="127" y="-313.3" font-family="Times,serif" font-size="14.00">FETCH_DONE</text>
+<polygon fill="turquoise" stroke="turquoise" points="237.5,-335 126.5,-335 126.5,-299 237.5,-299 237.5,-335"/>
+<text text-anchor="middle" x="182" y="-313.3" font-family="Times,serif" font-size="14.00">FETCH_DONE</text>
 </g>
 <!-- FETCH->FETCH_DONE -->
-<g id="edge15" class="edge"><title>FETCH->FETCH_DONE</title>
-<path fill="none" stroke="black" stroke-dasharray="1,5" d="M147.464,-371.813C144.347,-363.615 140.547,-353.623 137.072,-344.485"/>
-<polygon fill="black" stroke="black" points="140.302,-343.132 133.476,-335.029 133.759,-345.62 140.302,-343.132"/>
+<g id="edge16" class="edge"><title>FETCH->FETCH_DONE</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M199.432,-371.813C196.805,-363.702 193.609,-353.836 190.674,-344.777"/>
+<polygon fill="black" stroke="black" points="193.928,-343.463 187.516,-335.029 187.269,-345.621 193.928,-343.463"/>
 </g>
 <!-- FETCH_FAIL -->
 <g id="node17" class="node"><title>FETCH_FAIL</title>
-<polygon fill="turquoise" stroke="turquoise" points="316,-335 220,-335 220,-299 316,-299 316,-335"/>
-<text text-anchor="middle" x="268" y="-313.3" font-family="Times,serif" font-size="14.00">FETCH_FAIL</text>
+<polygon fill="turquoise" stroke="turquoise" points="358.5,-335 255.5,-335 255.5,-299 358.5,-299 358.5,-335"/>
+<text text-anchor="middle" x="307" y="-313.3" font-family="Times,serif" font-size="14.00">FETCH_FAIL</text>
 </g>
 <!-- FETCH->FETCH_FAIL -->
-<g id="edge16" class="edge"><title>FETCH->FETCH_FAIL</title>
-<path fill="none" stroke="black" stroke-dasharray="1,5" d="M181.306,-371.994C196.423,-362.579 215.407,-350.755 231.753,-340.575"/>
-<polygon fill="black" stroke="black" points="233.884,-343.371 240.522,-335.114 230.183,-337.429 233.884,-343.371"/>
+<g id="edge17" class="edge"><title>FETCH->FETCH_FAIL</title>
+<path fill="none" stroke="black" stroke-dasharray="1,5" d="M229.432,-371.994C242.832,-362.666 259.629,-350.974 274.162,-340.858"/>
+<polygon fill="black" stroke="black" points="276.206,-343.699 282.414,-335.114 272.207,-337.954 276.206,-343.699"/>
 </g>
 <!-- FETCH_DONE->deliver -->
-<g id="edge13" class="edge"><title>FETCH_DONE->deliver</title>
-<path fill="none" stroke="red" stroke-width="2" d="M121.938,-298.656C121.117,-291.065 120.595,-281.628 120.373,-271.691"/>
-<polygon fill="red" stroke="red" stroke-width="2" points="123.873,-271.595 120.251,-261.638 116.873,-271.68 123.873,-271.595"/>
+<g id="edge14" class="edge"><title>FETCH_DONE->deliver</title>
+<path fill="none" stroke="red" stroke-width="2" d="M176.938,-298.656C176.117,-291.065 175.595,-281.628 175.373,-271.691"/>
+<polygon fill="red" stroke="red" stroke-width="2" points="178.873,-271.595 175.251,-261.638 171.873,-271.68 178.873,-271.595"/>
 </g>
 <!-- FETCH_DONE->deliver -->
-<g id="edge14" class="edge"><title>FETCH_DONE->deliver</title>
-<path fill="none" stroke="blue" stroke-width="2" d="M132.062,-298.656C132.883,-291.065 133.405,-281.628 133.627,-271.691"/>
-<polygon fill="blue" stroke="blue" stroke-width="2" points="137.127,-271.68 133.749,-261.638 130.127,-271.595 137.127,-271.68"/>
+<g id="edge15" class="edge"><title>FETCH_DONE->deliver</title>
+<path fill="none" stroke="blue" stroke-width="2" d="M187.062,-298.656C187.883,-291.065 188.405,-281.628 188.627,-271.691"/>
+<polygon fill="blue" stroke="blue" stroke-width="2" points="192.127,-271.68 188.749,-261.638 185.127,-271.595 192.127,-271.68"/>
 </g>
 <!-- FETCH_FAIL->synth -->
-<g id="edge12" class="edge"><title>FETCH_FAIL->synth</title>
-<path fill="none" stroke="purple" d="M286.487,-298.9C298.688,-287.614 315.38,-272.173 331.705,-257.072"/>
-<polygon fill="purple" stroke="purple" points="334.199,-259.534 339.163,-250.174 329.445,-254.395 334.199,-259.534"/>
+<g id="edge13" class="edge"><title>FETCH_FAIL->synth</title>
+<path fill="none" stroke="purple" d="M316.062,-298.656C321.603,-288.052 329.026,-273.847 336.413,-259.71"/>
+<polygon fill="purple" stroke="purple" points="339.713,-260.952 341.242,-250.468 333.509,-257.71 339.713,-260.952"/>
 </g>
 <!-- lookup2 -->
 <g id="node18" class="node"><title>lookup2</title>
-<polygon fill="none" stroke="black" points="12,-688.5 12,-780.5 244,-780.5 244,-688.5 12,-688.5"/>
-<text text-anchor="middle" x="128" y="-765.3" font-family="Times,serif" font-size="14.00">cnt_lookup:</text>
-<polyline fill="none" stroke="black" points="12,-757.5 244,-757.5 "/>
-<text text-anchor="middle" x="76" y="-730.8" font-family="Times,serif" font-size="14.00">vcl_hit{}</text>
-<polyline fill="none" stroke="black" points="140,-711.5 140,-757.5 "/>
-<text text-anchor="middle" x="192" y="-742.3" font-family="Times,serif" font-size="14.00">req.*</text>
-<polyline fill="none" stroke="black" points="140,-734.5 244,-734.5 "/>
-<text text-anchor="middle" x="192" y="-719.3" font-family="Times,serif" font-size="14.00">obj.*</text>
-<polyline fill="none" stroke="black" points="12,-711.5 244,-711.5 "/>
-<text text-anchor="middle" x="39" y="-696.3" font-family="Times,serif" font-size="14.00">deliver</text>
-<polyline fill="none" stroke="black" points="66,-688.5 66,-711.5 "/>
-<text text-anchor="middle" x="87" y="-696.3" font-family="Times,serif" font-size="14.00">miss</text>
-<polyline fill="none" stroke="black" points="108,-688.5 108,-711.5 "/>
-<text text-anchor="middle" x="133" y="-696.3" font-family="Times,serif" font-size="14.00">restart</text>
-<polyline fill="none" stroke="black" points="158,-688.5 158,-711.5 "/>
-<text text-anchor="middle" x="181" y="-696.3" font-family="Times,serif" font-size="14.00">synth</text>
-<polyline fill="none" stroke="black" points="204,-688.5 204,-711.5 "/>
-<text text-anchor="middle" x="224" y="-696.3" font-family="Times,serif" font-size="14.00">pass</text>
+<polygon fill="none" stroke="black" points="0,-688.5 0,-780.5 272,-780.5 272,-688.5 0,-688.5"/>
+<text text-anchor="middle" x="136" y="-765.3" font-family="Times,serif" font-size="14.00">cnt_lookup:</text>
+<polyline fill="none" stroke="black" points="0,-757.5 272,-757.5 "/>
+<text text-anchor="middle" x="73.5" y="-730.8" font-family="Times,serif" font-size="14.00">vcl_hit{}</text>
+<polyline fill="none" stroke="black" points="147,-711.5 147,-757.5 "/>
+<text text-anchor="middle" x="209.5" y="-742.3" font-family="Times,serif" font-size="14.00">req.*</text>
+<polyline fill="none" stroke="black" points="147,-734.5 272,-734.5 "/>
+<text text-anchor="middle" x="209.5" y="-719.3" font-family="Times,serif" font-size="14.00">obj.*</text>
+<polyline fill="none" stroke="black" points="0,-711.5 272,-711.5 "/>
+<text text-anchor="middle" x="17.5" y="-696.3" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="35,-688.5 35,-711.5 "/>
+<text text-anchor="middle" x="63" y="-696.3" font-family="Times,serif" font-size="14.00">deliver</text>
+<polyline fill="none" stroke="black" points="91,-688.5 91,-711.5 "/>
+<text text-anchor="middle" x="112" y="-696.3" font-family="Times,serif" font-size="14.00">miss</text>
+<polyline fill="none" stroke="black" points="133,-688.5 133,-711.5 "/>
+<text text-anchor="middle" x="158" y="-696.3" font-family="Times,serif" font-size="14.00">restart</text>
+<polyline fill="none" stroke="black" points="183,-688.5 183,-711.5 "/>
+<text text-anchor="middle" x="207" y="-696.3" font-family="Times,serif" font-size="14.00">synth</text>
+<polyline fill="none" stroke="black" points="231,-688.5 231,-711.5 "/>
+<text text-anchor="middle" x="251.5" y="-696.3" font-family="Times,serif" font-size="14.00">pass</text>
 </g>
 <!-- lookup2->deliver -->
-<g id="edge21" class="edge"><title>lookup2:deliver:s->deliver:n</title>
-<path fill="none" stroke="green" stroke-width="2" d="M39,-688C39,-651.997 0,-653.003 0,-617 0,-617 0,-617 0,-316 0,-258.498 111.621,-315.259 125.574,-272.04"/>
-<polygon fill="green" stroke="green" stroke-width="2" points="129.059,-272.393 127,-262 122.128,-271.408 129.059,-272.393"/>
+<g id="edge22" class="edge"><title>lookup2:deliver:s->deliver:n</title>
+<path fill="none" stroke="green" stroke-width="2" d="M63,-688C63,-671.667 44,-633.333 44,-617 44,-617 44,-617 44,-316 44,-253.997 166.302,-319.247 180.634,-272.156"/>
+<polygon fill="green" stroke="green" stroke-width="2" points="184.136,-272.377 182,-262 177.198,-271.444 184.136,-272.377"/>
 </g>
 <!-- lookup2->BGFETCH -->
-<g id="edge11" class="edge"><title>lookup2:deliver:s->BGFETCH</title>
-<path fill="none" stroke="green" d="M39,-688C39,-619.11 31.0726,-601.541 38,-533 42.0833,-492.599 52.5431,-446.704 59.7172,-418.298"/>
-<polygon fill="green" stroke="green" points="63.1835,-418.871 62.2857,-408.315 56.4043,-417.127 63.1835,-418.871"/>
-<text text-anchor="middle" x="75" y="-551.8" font-family="Times,serif" font-size="14.00">parallel</text>
-<text text-anchor="middle" x="75" y="-536.8" font-family="Times,serif" font-size="14.00">if obj expired</text>
+<g id="edge12" class="edge"><title>lookup2:deliver:s->BGFETCH</title>
+<path fill="none" stroke="green" d="M63,-688C63,-587.173 91.9039,-469.833 106.193,-417.986"/>
+<polygon fill="green" stroke="green" points="109.598,-418.803 108.923,-408.23 102.857,-416.916 109.598,-418.803"/>
+<text text-anchor="middle" x="119" y="-551.8" font-family="Times,serif" font-size="14.00">parallel</text>
+<text text-anchor="middle" x="119" y="-536.8" font-family="Times,serif" font-size="14.00">if obj expired</text>
 </g>
 <!-- miss -->
 <g id="node20" class="node"><title>miss</title>
-<polygon fill="none" stroke="black" points="66,-581.5 66,-650.5 246,-650.5 246,-581.5 66,-581.5"/>
-<text text-anchor="middle" x="156" y="-635.3" font-family="Times,serif" font-size="14.00">cnt_miss:</text>
-<polyline fill="none" stroke="black" points="66,-627.5 246,-627.5 "/>
-<text text-anchor="middle" x="119.5" y="-612.3" font-family="Times,serif" font-size="14.00">vcl_miss{}</text>
-<polyline fill="none" stroke="black" points="173,-604.5 173,-627.5 "/>
-<text text-anchor="middle" x="209.5" y="-612.3" font-family="Times,serif" font-size="14.00">req.*</text>
-<polyline fill="none" stroke="black" points="66,-604.5 246,-604.5 "/>
-<text text-anchor="middle" x="88" y="-589.3" font-family="Times,serif" font-size="14.00">fetch</text>
-<polyline fill="none" stroke="black" points="110,-581.5 110,-604.5 "/>
-<text text-anchor="middle" x="133" y="-589.3" font-family="Times,serif" font-size="14.00">synth</text>
-<polyline fill="none" stroke="black" points="156,-581.5 156,-604.5 "/>
-<text text-anchor="middle" x="181" y="-589.3" font-family="Times,serif" font-size="14.00">restart</text>
-<polyline fill="none" stroke="black" points="206,-581.5 206,-604.5 "/>
-<text text-anchor="middle" x="226" y="-589.3" font-family="Times,serif" font-size="14.00">pass</text>
+<polygon fill="none" stroke="black" points="110,-581.5 110,-650.5 328,-650.5 328,-581.5 110,-581.5"/>
+<text text-anchor="middle" x="219" y="-635.3" font-family="Times,serif" font-size="14.00">cnt_miss:</text>
+<polyline fill="none" stroke="black" points="110,-627.5 328,-627.5 "/>
+<text text-anchor="middle" x="173" y="-612.3" font-family="Times,serif" font-size="14.00">vcl_miss{}</text>
+<polyline fill="none" stroke="black" points="236,-604.5 236,-627.5 "/>
+<text text-anchor="middle" x="282" y="-612.3" font-family="Times,serif" font-size="14.00">req.*</text>
+<polyline fill="none" stroke="black" points="110,-604.5 328,-604.5 "/>
+<text text-anchor="middle" x="127.5" y="-589.3" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="145,-581.5 145,-604.5 "/>
+<text text-anchor="middle" x="167" y="-589.3" font-family="Times,serif" font-size="14.00">fetch</text>
+<polyline fill="none" stroke="black" points="189,-581.5 189,-604.5 "/>
+<text text-anchor="middle" x="213" y="-589.3" font-family="Times,serif" font-size="14.00">synth</text>
+<polyline fill="none" stroke="black" points="237,-581.5 237,-604.5 "/>
+<text text-anchor="middle" x="262" y="-589.3" font-family="Times,serif" font-size="14.00">restart</text>
+<polyline fill="none" stroke="black" points="287,-581.5 287,-604.5 "/>
+<text text-anchor="middle" x="307.5" y="-589.3" font-family="Times,serif" font-size="14.00">pass</text>
 </g>
 <!-- lookup2->miss -->
-<g id="edge22" class="edge"><title>lookup2:miss:s->miss</title>
-<path fill="none" stroke="blue" stroke-width="2" d="M87,-688C87,-676.946 91.3547,-666.965 97.8762,-658.215"/>
-<polygon fill="blue" stroke="blue" stroke-width="2" points="100.599,-660.416 104.412,-650.531 95.2668,-655.881 100.599,-660.416"/>
+<g id="edge23" class="edge"><title>lookup2:miss:s->miss</title>
+<path fill="none" stroke="blue" stroke-width="2" d="M112,-688C112,-676.223 116.557,-666.282 123.789,-657.923"/>
+<polygon fill="blue" stroke="blue" stroke-width="2" points="126.468,-660.197 131.129,-650.682 121.552,-655.213 126.468,-660.197"/>
 </g>
 <!-- pass -->
 <g id="node21" class="node"><title>pass</title>
-<polygon fill="none" stroke="black" points="204,-445.5 204,-514.5 344,-514.5 344,-445.5 204,-445.5"/>
-<text text-anchor="middle" x="274" y="-499.3" font-family="Times,serif" font-size="14.00">cnt_pass:</text>
-<polyline fill="none" stroke="black" points="204,-491.5 344,-491.5 "/>
-<text text-anchor="middle" x="247" y="-476.3" font-family="Times,serif" font-size="14.00">vcl_pass{}</text>
-<polyline fill="none" stroke="black" points="290,-468.5 290,-491.5 "/>
-<text text-anchor="middle" x="317" y="-476.3" font-family="Times,serif" font-size="14.00">req.*</text>
-<polyline fill="none" stroke="black" points="204,-468.5 344,-468.5 "/>
-<text text-anchor="middle" x="226" y="-453.3" font-family="Times,serif" font-size="14.00">fetch</text>
-<polyline fill="none" stroke="black" points="248,-445.5 248,-468.5 "/>
-<text text-anchor="middle" x="271" y="-453.3" font-family="Times,serif" font-size="14.00">synth</text>
-<polyline fill="none" stroke="black" points="294,-445.5 294,-468.5 "/>
-<text text-anchor="middle" x="319" y="-453.3" font-family="Times,serif" font-size="14.00">restart</text>
+<polygon fill="none" stroke="black" points="267.5,-445.5 267.5,-514.5 444.5,-514.5 444.5,-445.5 267.5,-445.5"/>
+<text text-anchor="middle" x="356" y="-499.3" font-family="Times,serif" font-size="14.00">cnt_pass:</text>
+<polyline fill="none" stroke="black" points="267.5,-491.5 444.5,-491.5 "/>
+<text text-anchor="middle" x="320" y="-476.3" font-family="Times,serif" font-size="14.00">vcl_pass{}</text>
+<polyline fill="none" stroke="black" points="372.5,-468.5 372.5,-491.5 "/>
+<text text-anchor="middle" x="408.5" y="-476.3" font-family="Times,serif" font-size="14.00">req.*</text>
+<polyline fill="none" stroke="black" points="267.5,-468.5 444.5,-468.5 "/>
+<text text-anchor="middle" x="285" y="-453.3" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="302.5,-445.5 302.5,-468.5 "/>
+<text text-anchor="middle" x="324.5" y="-453.3" font-family="Times,serif" font-size="14.00">fetch</text>
+<polyline fill="none" stroke="black" points="346.5,-445.5 346.5,-468.5 "/>
+<text text-anchor="middle" x="370.5" y="-453.3" font-family="Times,serif" font-size="14.00">synth</text>
+<polyline fill="none" stroke="black" points="394.5,-445.5 394.5,-468.5 "/>
+<text text-anchor="middle" x="419.5" y="-453.3" font-family="Times,serif" font-size="14.00">restart</text>
 </g>
 <!-- lookup2->pass -->
-<g id="edge23" class="edge"><title>lookup2:pass:s->pass</title>
-<path fill="none" stroke="red" stroke-width="2" d="M224,-688C224,-666.547 246.56,-670.723 255,-651 272.28,-610.619 275.935,-560.155 275.941,-524.736"/>
-<polygon fill="red" stroke="red" stroke-width="2" points="279.441,-524.678 275.846,-514.712 272.441,-524.745 279.441,-524.678"/>
+<g id="edge24" class="edge"><title>lookup2:pass:s->pass</title>
+<path fill="none" stroke="red" stroke-width="2" d="M252,-688C252,-646.798 312.535,-684.151 337,-651 363.757,-614.743 365.471,-561.743 362.428,-524.586"/>
+<polygon fill="red" stroke="red" stroke-width="2" points="365.904,-524.171 361.46,-514.553 358.936,-524.843 365.904,-524.171"/>
 </g>
 <!-- lookup -->
 <g id="node19" class="node"><title>lookup</title>
-<polygon fill="none" stroke="grey" points="110,-841.5 110,-910.5 328,-910.5 328,-841.5 110,-841.5"/>
-<text text-anchor="middle" x="219" y="-895.3" font-family="Times,serif" font-size="14.00" fill="grey">cnt_lookup:</text>
-<polyline fill="none" stroke="grey" points="110,-887.5 328,-887.5 "/>
-<text text-anchor="middle" x="219" y="-872.3" font-family="Times,serif" font-size="14.00" fill="grey">hash lookup</text>
-<polyline fill="none" stroke="grey" points="110,-864.5 328,-864.5 "/>
-<text text-anchor="middle" x="128.5" y="-849.3" font-family="Times,serif" font-size="14.00" fill="grey">hit?</text>
-<polyline fill="none" stroke="grey" points="147,-841.5 147,-864.5 "/>
-<text text-anchor="middle" x="171" y="-849.3" font-family="Times,serif" font-size="14.00" fill="grey">miss?</text>
-<polyline fill="none" stroke="grey" points="195,-841.5 195,-864.5 "/>
-<text text-anchor="middle" x="237.5" y="-849.3" font-family="Times,serif" font-size="14.00" fill="grey">hit-for-pass?</text>
-<polyline fill="none" stroke="grey" points="280,-841.5 280,-864.5 "/>
-<text text-anchor="middle" x="304" y="-849.3" font-family="Times,serif" font-size="14.00" fill="grey">busy?</text>
+<polygon fill="none" stroke="grey" points="117.5,-841.5 117.5,-910.5 340.5,-910.5 340.5,-841.5 117.5,-841.5"/>
+<text text-anchor="middle" x="229" y="-895.3" font-family="Times,serif" font-size="14.00" fill="grey">cnt_lookup:</text>
+<polyline fill="none" stroke="grey" points="117.5,-887.5 340.5,-887.5 "/>
+<text text-anchor="middle" x="229" y="-872.3" font-family="Times,serif" font-size="14.00" fill="grey">hash lookup</text>
+<polyline fill="none" stroke="grey" points="117.5,-864.5 340.5,-864.5 "/>
+<text text-anchor="middle" x="136.5" y="-849.3" font-family="Times,serif" font-size="14.00" fill="grey">hit?</text>
+<polyline fill="none" stroke="grey" points="155.5,-841.5 155.5,-864.5 "/>
+<text text-anchor="middle" x="179.5" y="-849.3" font-family="Times,serif" font-size="14.00" fill="grey">miss?</text>
+<polyline fill="none" stroke="grey" points="203.5,-841.5 203.5,-864.5 "/>
+<text text-anchor="middle" x="247" y="-849.3" font-family="Times,serif" font-size="14.00" fill="grey">hit-for-pass?</text>
+<polyline fill="none" stroke="grey" points="290.5,-841.5 290.5,-864.5 "/>
+<text text-anchor="middle" x="315.5" y="-849.3" font-family="Times,serif" font-size="14.00" fill="grey">busy?</text>
 </g>
 <!-- lookup->lookup2 -->
-<g id="edge20" class="edge"><title>lookup:h:s->lookup2</title>
-<path fill="none" stroke="green" stroke-width="2" d="M128,-840C128,-824.001 128,-806.625 128,-790.719"/>
-<polygon fill="green" stroke="green" stroke-width="2" points="131.5,-790.507 128,-780.507 124.5,-790.507 131.5,-790.507"/>
+<g id="edge21" class="edge"><title>lookup:h:s->lookup2</title>
+<path fill="none" stroke="green" stroke-width="2" d="M136,-840C136,-824.001 136,-806.625 136,-790.719"/>
+<polygon fill="green" stroke="green" stroke-width="2" points="139.5,-790.507 136,-780.507 132.5,-790.507 139.5,-790.507"/>
 </g>
 <!-- lookup->lookup -->
-<g id="edge17" class="edge"><title>lookup:busy:e->lookup:top:e</title>
-<path fill="none" stroke="grey" d="M328,-853C334,-834 346,-834 346,-876 346,-908.812 338.676,-915.99 332.61,-908.5"/>
-<polygon fill="grey" stroke="grey" points="335.515,-906.469 328,-899 329.217,-909.525 335.515,-906.469"/>
-<text text-anchor="middle" x="379.5" y="-872.3" font-family="Times,serif" font-size="14.00" fill="grey">(waitinglist)</text>
+<g id="edge18" class="edge"><title>lookup:busy:e->lookup:top:e</title>
+<path fill="none" stroke="grey" d="M341,-853C346.5,-834 358.5,-834 358.5,-876 358.5,-908.812 351.176,-915.99 345.349,-908.5"/>
+<polygon fill="grey" stroke="grey" points="348.345,-906.636 341,-899 341.98,-909.549 348.345,-906.636"/>
+<text text-anchor="middle" x="393" y="-872.3" font-family="Times,serif" font-size="14.00" fill="grey">(waitinglist)</text>
 </g>
 <!-- lookup->miss -->
-<g id="edge18" class="edge"><title>lookup:miss:s->miss</title>
-<path fill="none" stroke="blue" stroke-width="2" d="M171,-840C171,-795.102 232.525,-820.957 253,-781 271.85,-744.215 271.7,-724.861 253,-688 247.056,-676.283 238.17,-666.036 228.148,-657.243"/>
-<polygon fill="blue" stroke="blue" stroke-width="2" points="230.244,-654.436 220.292,-650.803 225.806,-659.85 230.244,-654.436"/>
+<g id="edge19" class="edge"><title>lookup:miss:s->miss</title>
+<path fill="none" stroke="blue" stroke-width="2" d="M179,-840C179,-787.629 254.833,-826.365 281,-781 301.652,-745.196 295.519,-726.699 281,-688 277.083,-677.56 270.859,-667.647 263.833,-658.721"/>
+<polygon fill="blue" stroke="blue" stroke-width="2" points="266.307,-656.224 257.198,-650.813 260.945,-660.724 266.307,-656.224"/>
 </g>
 <!-- lookup->pass -->
-<g id="edge19" class="edge"><title>lookup:hfp:s->pass</title>
-<path fill="none" stroke="red" stroke-width="2" d="M238,-840C238,-809.048 265.428,-810.435 275,-781 305.034,-688.643 286.665,-660.061 290,-563 290.458,-549.675 291.983,-546.185 290,-533 289.572,-530.154 289.019,-527.249 288.378,-524.339"/>
-<polygon fill="red" stroke="red" stroke-width="2" points="291.738,-523.351 285.905,-514.506 284.95,-525.058 291.738,-523.351"/>
+<g id="edge20" class="edge"><title>lookup:hfp:s->pass</title>
+<path fill="none" stroke="red" stroke-width="2" d="M247,-840C247,-804.151 281.827,-810.634 302,-781 338.021,-728.084 344.998,-712.127 364,-651 379.677,-600.568 388.498,-584.758 378,-533 377.425,-530.163 376.689,-527.289 375.838,-524.423"/>
+<polygon fill="red" stroke="red" stroke-width="2" points="379.094,-523.126 372.565,-514.782 372.466,-525.377 379.094,-523.126"/>
 </g>
 <!-- miss->FETCH -->
-<g id="edge24" class="edge"><title>miss:fetch:s->FETCH</title>
-<path fill="none" stroke="blue" stroke-width="2" d="M88,-581C88,-566.206 107.544,-575.139 116,-563 146.653,-518.997 153.142,-454.572 154.188,-418.35"/>
-<polygon fill="blue" stroke="blue" stroke-width="2" points="157.693,-418.125 154.359,-408.068 150.694,-418.008 157.693,-418.125"/>
+<g id="edge25" class="edge"><title>miss:fetch:s->FETCH</title>
+<path fill="none" stroke="blue" stroke-width="2" d="M167,-581C167,-521.909 184.892,-454.453 196.121,-417.934"/>
+<polygon fill="blue" stroke="blue" stroke-width="2" points="199.565,-418.651 199.229,-408.061 192.888,-416.549 199.565,-418.651"/>
 </g>
 <!-- miss->pass -->
-<g id="edge25" class="edge"><title>miss:pass:s->pass</title>
-<path fill="none" stroke="red" stroke-width="2" d="M226,-581C226,-561.014 233.889,-540.798 243.27,-523.823"/>
-<polygon fill="red" stroke="red" stroke-width="2" points="246.553,-525.144 248.594,-514.748 240.515,-521.602 246.553,-525.144"/>
+<g id="edge26" class="edge"><title>miss:pass:s->pass</title>
+<path fill="none" stroke="red" stroke-width="2" d="M308,-581C308,-561.014 315.889,-540.798 325.27,-523.823"/>
+<polygon fill="red" stroke="red" stroke-width="2" points="328.553,-525.144 330.594,-514.748 322.515,-521.602 328.553,-525.144"/>
 </g>
 <!-- pass->FETCH -->
-<g id="edge26" class="edge"><title>pass:fetch:s->FETCH</title>
-<path fill="none" stroke="red" stroke-width="2" d="M226,-445C226,-435.486 209.709,-422.805 192.625,-412.122"/>
-<polygon fill="red" stroke="red" stroke-width="2" points="194.073,-408.908 183.701,-406.745 190.46,-414.904 194.073,-408.908"/>
+<g id="edge27" class="edge"><title>pass:fetch:s->FETCH</title>
+<path fill="none" stroke="red" stroke-width="2" d="M324,-445C324,-442.803 280.413,-423.486 245.997,-408.577"/>
+<polygon fill="red" stroke="red" stroke-width="2" points="247.145,-405.26 236.577,-404.506 244.369,-411.686 247.145,-405.26"/>
 </g>
 <!-- pipe -->
 <g id="node22" class="node"><title>pipe</title>
-<polygon fill="none" stroke="black" points="631,-818.5 631,-933.5 765,-933.5 765,-818.5 631,-818.5"/>
-<text text-anchor="middle" x="698" y="-918.3" font-family="Times,serif" font-size="14.00">cnt_pipe:</text>
-<polyline fill="none" stroke="black" points="631,-910.5 765,-910.5 "/>
-<text text-anchor="middle" x="698" y="-895.3" font-family="Times,serif" font-size="14.00">filter req.*->bereq.*</text>
-<polyline fill="none" stroke="black" points="631,-887.5 765,-887.5 "/>
-<text text-anchor="middle" x="669.5" y="-860.8" font-family="Times,serif" font-size="14.00">vcl_pipe{}</text>
-<polyline fill="none" stroke="black" points="708,-841.5 708,-887.5 "/>
-<text text-anchor="middle" x="736.5" y="-872.3" font-family="Times,serif" font-size="14.00">req.*</text>
-<polyline fill="none" stroke="black" points="708,-864.5 765,-864.5 "/>
-<text text-anchor="middle" x="736.5" y="-849.3" font-family="Times,serif" font-size="14.00">bereq.*</text>
-<polyline fill="none" stroke="black" points="631,-841.5 765,-841.5 "/>
-<text text-anchor="middle" x="663" y="-826.3" font-family="Times,serif" font-size="14.00">pipe</text>
-<polyline fill="none" stroke="black" points="695,-818.5 695,-841.5 "/>
-<text text-anchor="middle" x="730" y="-826.3" font-family="Times,serif" font-size="14.00">synth</text>
+<polygon fill="none" stroke="black" points="636.5,-818.5 636.5,-933.5 775.5,-933.5 775.5,-818.5 636.5,-818.5"/>
+<text text-anchor="middle" x="706" y="-918.3" font-family="Times,serif" font-size="14.00">cnt_pipe:</text>
+<polyline fill="none" stroke="black" points="636.5,-910.5 775.5,-910.5 "/>
+<text text-anchor="middle" x="706" y="-895.3" font-family="Times,serif" font-size="14.00">filter req.*->bereq.*</text>
+<polyline fill="none" stroke="black" points="636.5,-887.5 775.5,-887.5 "/>
+<text text-anchor="middle" x="676.5" y="-860.8" font-family="Times,serif" font-size="14.00">vcl_pipe{}</text>
+<polyline fill="none" stroke="black" points="716.5,-841.5 716.5,-887.5 "/>
+<text text-anchor="middle" x="746" y="-872.3" font-family="Times,serif" font-size="14.00">req.*</text>
+<polyline fill="none" stroke="black" points="716.5,-864.5 775.5,-864.5 "/>
+<text text-anchor="middle" x="746" y="-849.3" font-family="Times,serif" font-size="14.00">bereq.*</text>
+<polyline fill="none" stroke="black" points="636.5,-841.5 775.5,-841.5 "/>
+<text text-anchor="middle" x="656.5" y="-826.3" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="676.5,-818.5 676.5,-841.5 "/>
+<text text-anchor="middle" x="699.5" y="-826.3" font-family="Times,serif" font-size="14.00">pipe</text>
+<polyline fill="none" stroke="black" points="722.5,-818.5 722.5,-841.5 "/>
+<text text-anchor="middle" x="749" y="-826.3" font-family="Times,serif" font-size="14.00">synth</text>
 </g>
 <!-- pipe_do -->
 <g id="node23" class="node"><title>pipe_do</title>
-<ellipse fill="none" stroke="black" cx="710" cy="-734.5" rx="95.4188" ry="26.7407"/>
-<text text-anchor="middle" x="710" y="-738.3" font-family="Times,serif" font-size="14.00">send bereq,</text>
-<text text-anchor="middle" x="710" y="-723.3" font-family="Times,serif" font-size="14.00">copy bytes until close</text>
+<ellipse fill="none" stroke="black" cx="641" cy="-734.5" rx="99.9045" ry="26.7407"/>
+<text text-anchor="middle" x="641" y="-738.3" font-family="Times,serif" font-size="14.00">send bereq,</text>
+<text text-anchor="middle" x="641" y="-723.3" font-family="Times,serif" font-size="14.00">copy bytes until close</text>
 </g>
 <!-- pipe->pipe_do -->
-<g id="edge27" class="edge"><title>pipe:pipe->pipe_do</title>
-<path fill="none" stroke="orange" stroke-width="2" d="M663,-818C663,-800.39 671.184,-783.111 680.723,-768.953"/>
-<polygon fill="orange" stroke="orange" stroke-width="2" points="683.761,-770.724 686.775,-760.566 678.085,-766.627 683.761,-770.724"/>
+<g id="edge28" class="edge"><title>pipe:pipe->pipe_do</title>
+<path fill="none" stroke="orange" stroke-width="2" d="M699,-818C699,-799.413 689.025,-782.053 677.349,-768.1"/>
+<polygon fill="orange" stroke="orange" stroke-width="2" points="679.625,-765.397 670.34,-760.295 674.417,-770.074 679.625,-765.397"/>
 </g>
 <!-- pipe_do->DONE -->
-<g id="edge28" class="edge"><title>pipe_do->DONE</title>
-<path fill="none" stroke="orange" stroke-width="2" d="M694.476,-707.666C682.159,-684.697 667,-649.77 667,-617 667,-617 667,-617 667,-90 667,-56.794 630.911,-38.2532 600.456,-28.5187"/>
-<polygon fill="orange" stroke="orange" stroke-width="2" points="601.402,-25.1485 590.819,-25.6602 599.411,-31.8595 601.402,-25.1485"/>
+<g id="edge29" class="edge"><title>pipe_do->DONE</title>
+<path fill="none" stroke="orange" stroke-width="2" d="M612.268,-708.314C590.746,-686.544 565,-652.982 565,-617 565,-617 565,-617 565,-90 565,-64.638 542.266,-46.2211 520.885,-34.5089"/>
+<polygon fill="orange" stroke="orange" stroke-width="2" points="522.372,-31.3381 511.876,-29.8991 519.184,-37.5699 522.372,-31.3381"/>
 </g>
 <!-- restart->recv -->
-<g id="edge30" class="edge"><title>restart:ok:s->recv</title>
-<path fill="none" stroke="black" d="M728,-1185C728,-1157.58 709.471,-1140.47 684.403,-1129.87"/>
-<polygon fill="black" stroke="black" points="685.485,-1126.53 674.894,-1126.25 682.996,-1133.08 685.485,-1126.53"/>
+<g id="edge31" class="edge"><title>restart:ok:s->recv</title>
+<path fill="none" stroke="black" d="M696,-1185C696,-1170.43 676.995,-1158.11 650.672,-1148.03"/>
+<polygon fill="black" stroke="black" points="651.67,-1144.67 641.076,-1144.56 649.289,-1151.25 651.67,-1144.67"/>
 </g>
 <!-- err_restart -->
 <g id="node25" class="node"><title>err_restart</title>
-<text text-anchor="middle" x="792" y="-1109.3" font-family="Times,serif" font-size="14.00">SYNTH</text>
+<text text-anchor="middle" x="763" y="-1109.3" font-family="Times,serif" font-size="14.00">SYNTH</text>
 </g>
 <!-- restart->err_restart -->
-<g id="edge31" class="edge"><title>restart:max:s->err_restart</title>
-<path fill="none" stroke="purple" d="M792,-1185C792,-1170.65 792,-1154.67 792,-1141.51"/>
-<polygon fill="purple" stroke="purple" points="795.5,-1141.22 792,-1131.22 788.5,-1141.22 795.5,-1141.22"/>
+<g id="edge32" class="edge"><title>restart:max:s->err_restart</title>
+<path fill="none" stroke="purple" d="M763,-1185C763,-1170.65 763,-1154.67 763,-1141.51"/>
+<polygon fill="purple" stroke="purple" points="766.5,-1141.22 763,-1131.22 759.5,-1141.22 766.5,-1141.22"/>
 </g>
 <!-- hash->lookup -->
-<g id="edge35" class="edge"><title>hash:lookup:w->lookup</title>
-<path fill="none" stroke="green" stroke-width="2" d="M451,-983C384.437,-983 316.057,-946.456 270.942,-916.282"/>
-<polygon fill="green" stroke="green" stroke-width="2" points="272.75,-913.279 262.515,-910.539 268.807,-919.063 272.75,-913.279"/>
+<g id="edge36" class="edge"><title>hash:lookup:w->lookup</title>
+<path fill="none" stroke="green" stroke-width="2" d="M410,-983C355.832,-983 303.503,-947.212 269.164,-917.225"/>
+<polygon fill="green" stroke="green" stroke-width="2" points="271.476,-914.597 261.689,-910.539 266.809,-919.814 271.476,-914.597"/>
 </g>
 <!-- hash->pass -->
-<g id="edge37" class="edge"><title>hash:lookup:s->pass</title>
-<path fill="none" stroke="red" stroke-width="2" d="M513,-971C513,-941.539 550.166,-957.45 568,-934 584.165,-912.745 587,-903.704 587,-877 587,-877 587,-877 587,-615 587,-513.87 447.204,-488.063 354.465,-482.069"/>
-<polygon fill="red" stroke="red" stroke-width="2" points="354.429,-478.561 344.243,-481.475 354.024,-485.549 354.429,-478.561"/>
+<g id="edge38" class="edge"><title>hash:lookup:s->pass</title>
+<path fill="none" stroke="red" stroke-width="2" d="M475,-971C475,-928.377 456,-919.623 456,-877 456,-877 456,-877 456,-615 456,-578.697 432.134,-545.884 407.721,-521.815"/>
+<polygon fill="red" stroke="red" stroke-width="2" points="409.815,-518.977 400.153,-514.632 404.996,-524.054 409.815,-518.977"/>
 </g>
 <!-- hash->pipe -->
-<g id="edge38" class="edge"><title>hash:lookup:e->pipe</title>
-<path fill="none" stroke="orange" stroke-width="2" d="M575,-983C605.899,-983 632.887,-963.568 653.648,-941.344"/>
-<polygon fill="orange" stroke="orange" stroke-width="2" points="656.401,-943.516 660.447,-933.724 651.178,-938.855 656.401,-943.516"/>
+<g id="edge39" class="edge"><title>hash:lookup:e->pipe</title>
+<path fill="none" stroke="orange" stroke-width="2" d="M540,-983C551.094,-983 617.653,-939.977 627,-934 627.187,-933.88 627.374,-933.761 627.561,-933.64"/>
+<polygon fill="orange" stroke="orange" stroke-width="2" points="629.618,-936.477 636.072,-928.075 625.787,-930.619 629.618,-936.477"/>
 </g>
 <!-- purge -->
 <g id="node27" class="node"><title>purge</title>
-<polygon fill="none" stroke="black" points="431,-841.5 431,-910.5 559,-910.5 559,-841.5 431,-841.5"/>
-<text text-anchor="middle" x="495" y="-895.3" font-family="Times,serif" font-size="14.00">cnt_purge:</text>
-<polyline fill="none" stroke="black" points="431,-887.5 559,-887.5 "/>
-<text text-anchor="middle" x="473" y="-872.3" font-family="Times,serif" font-size="14.00">vcl_purge{}</text>
-<polyline fill="none" stroke="black" points="515,-864.5 515,-887.5 "/>
-<text text-anchor="middle" x="537" y="-872.3" font-family="Times,serif" font-size="14.00">req.*</text>
-<polyline fill="none" stroke="black" points="431,-864.5 559,-864.5 "/>
-<text text-anchor="middle" x="462" y="-849.3" font-family="Times,serif" font-size="14.00">synth</text>
-<polyline fill="none" stroke="black" points="493,-841.5 493,-864.5 "/>
-<text text-anchor="middle" x="526" y="-849.3" font-family="Times,serif" font-size="14.00">restart</text>
+<polygon fill="none" stroke="black" points="484,-841.5 484,-910.5 618,-910.5 618,-841.5 484,-841.5"/>
+<text text-anchor="middle" x="551" y="-895.3" font-family="Times,serif" font-size="14.00">cnt_purge:</text>
+<polyline fill="none" stroke="black" points="484,-887.5 618,-887.5 "/>
+<text text-anchor="middle" x="528" y="-872.3" font-family="Times,serif" font-size="14.00">vcl_purge{}</text>
+<polyline fill="none" stroke="black" points="572,-864.5 572,-887.5 "/>
+<text text-anchor="middle" x="595" y="-872.3" font-family="Times,serif" font-size="14.00">req.*</text>
+<polyline fill="none" stroke="black" points="484,-864.5 618,-864.5 "/>
+<text text-anchor="middle" x="501.5" y="-849.3" font-family="Times,serif" font-size="14.00">fail</text>
+<polyline fill="none" stroke="black" points="519,-841.5 519,-864.5 "/>
+<text text-anchor="middle" x="543" y="-849.3" font-family="Times,serif" font-size="14.00">synth</text>
+<polyline fill="none" stroke="black" points="567,-841.5 567,-864.5 "/>
+<text text-anchor="middle" x="592.5" y="-849.3" font-family="Times,serif" font-size="14.00">restart</text>
 </g>
 <!-- hash->purge -->
-<g id="edge36" class="edge"><title>hash:lookup:s->purge:top:n</title>
-<path fill="none" stroke="purple" stroke-width="2" d="M513,-971C513,-947.333 499.585,-940.99 495.917,-922.06"/>
-<polygon fill="purple" stroke="purple" stroke-width="2" points="499.394,-921.641 495,-912 492.423,-922.277 499.394,-921.641"/>
+<g id="edge37" class="edge"><title>hash:lookup:s->purge:top:n</title>
+<path fill="none" stroke="purple" stroke-width="2" d="M475,-971C475,-932.08 537.957,-950.555 549.27,-921.948"/>
+<polygon fill="purple" stroke="purple" stroke-width="2" points="552.735,-922.452 551,-912 545.838,-921.252 552.735,-922.452"/>
 </g>
 </g>
 </svg>


More information about the varnish-commit mailing list