<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>I found the issue myself, perhaps it will help others.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>The backend servers were using keep-alive with varnish, and whenever varnish got a timeout from the backend, it would retry the request exactly once (hardcoded) because the initial backend was marked as “recycled”. <o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Disabling keep-alive on the backend servers resolved my issue.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Good luck,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Traian<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:EN-GB'> varnish-misc-bounces@varnish-cache.org [mailto:varnish-misc-bounces@varnish-cache.org] <b>On Behalf Of </b>Traian Bratucu<br><b>Sent:</b> Tuesday, December 07, 2010 11:37 AM<br><b>To:</b> 'varnish-misc@varnish-cache.org'<br><b>Subject:</b> varnish default retries on backend timeout?<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span lang=EN-US>Hello,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>We have been using Varnish for a while and encountered a specific problem I don’t seem to be able to figure out. Apparently on a POST request to the backend, for which the backend times out, the request is automatically retried by varnish a second time.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Obviously that is a big problem since POST data gets submitted twice. I do not have any restart statements in the VCL so I guess this is some default Varnish behavior, hopefully controlled by some global parameter.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Here is what I get logged:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>-------------<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='mso-fareast-language:EN-GB'>   32 Backend      c 5 xxx_authenticated black_instance_1<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='mso-fareast-language:EN-GB'>   32 FetchError   c http first read error: -1 11 (Resource temporarily unavailable)<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='mso-fareast-language:EN-GB'>   32 Backend      c 87 xxx_authenticated gray_instance_2<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='mso-fareast-language:EN-GB'>   32 FetchError   c http first read error: -1 11 (Resource temporarily unavailable)<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='mso-fareast-language:EN-GB'>   32 VCL_call     c error deliver<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='mso-fareast-language:EN-GB'>   32 VCL_call     c deliver deliver<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='mso-fareast-language:EN-GB'>   32 TxProtocol   c HTTP/1.1<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='mso-fareast-language:EN-GB'>   32 TxStatus     c 503<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='mso-fareast-language:EN-GB'>-------------<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Is there a way to avoid this double post?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US>Thank you,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US>Traian<o:p></o:p></span></p></div></body></html>