<div dir="ltr">In other words, for cache insertions default / no setting means RR and NULL means failure?<div><br></div><div>I believe that'd work.<div><div><br></div><div>About this:</div><div><br><span style="font-size:12.8px">> If at the end of v_b_r{} beresp->storage is non-NULL, we use that</span><span style="font-size:12.8px"> stevedore and only that stevedore.</span><br><div><span style="font-size:12.8px"><br></span></div></div><div><span style="font-size:12.8px">If someone sets the wrong storage, because e.g. they had a typo, we will fail the request or fallback to Transient?</span></div><div><span style="font-size:12.8px"><br></span></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 11, 2016 at 9:12 PM, Poul-Henning Kamp <span dir="ltr"><<a href="mailto:phk@phk.freebsd.dk" target="_blank">phk@phk.freebsd.dk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">--------<br>
In message <<a href="mailto:CAJV_h0bnbgUL-P43_UyX8q_RFV06if1SjPHo21Y4g%2BH-ME6QcA@mail.gmail.com">CAJV_h0bnbgUL-P43_UyX8q_<wbr>RFV06if1SjPHo21Y4g+H-ME6QcA@<wbr>mail.gmail.com</a>><br>
<span class="">, Federico Schwindt writes:<br>
<br>
>Regardless of the RR, any comments or guidelines to move this forward?<br>
<br>
</span>Having read the thread again, I suggest:<br>
<br>
        Before vcl_backend_response{} we point beresp->storage to the next<br>
        stevedore RR-wise. (Today we do it later, because it is a hint).<br>
<br>
        If at the end of v_b_r{} beresp->storage is non-NULL, we use that<br>
        stevedore and only that stevedore.<br>
<br>
        If at the end of v_b_r{} beresp->storage is NULL, we take it to<br>
        mean storage failure and we 50x.<br>
<br>
        That means you can still salvage inside v_b_r{}:<br>
<br>
                beresp->stevedore = vmod.forklift();<br>
                if (!beresp->stevedore) {<br>
                        beresp->stevedore = Transient;<br>
                        beresp->uncacheable = True;<br>
                }<br>
<br>
        For compatibility, if VCL sets beresp->storage_hint, and the string<br>
        is a stevedore name, we *also* set beresp->storage, but on failure<br>
        we leave it alone.<br>
<br>
I belive that gives the semantics you desire in a POLA compliant fashion ?<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20<br>
phk@FreeBSD.ORG         | TCP/IP since RFC 956<br>
FreeBSD committer       | BSD since 4.3-tahoe<br>
Never attribute to malice what can adequately be explained by incompetence.<br>
</div></div></blockquote></div><br></div>