Varnish sending incomplete responses when nuking objects

Radu Moisa rmoisa at yahoo.com
Sat Dec 9 09:05:37 UTC 2017


Hi,
I have an issue with varnish (v5.2.1) returning incomplete responses when the cache gets full and it starts nuking objects.The request that triggered the object nuke is returned incomplete (tested with curl) and the python requests library complains with "ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))".
Do you see anything wrong in the vlc file? Should there be a mandatory return statement in the vcl_recv function?

vcl 4.0;
backend pub1 {    .host = "pub1.example.com";    .port = "80";    .probe = {        .url = "/";        .timeout = 5s;        .interval = 10s;        .window = 5;        .threshold = 3;    }    .connect_timeout = 10s;    .first_byte_timeout = 900s;    .between_bytes_timeout = 900s;}
backend pub2 {    .host = "pub2.example.com";    .port = "80";    .probe = {        .url = "/";        .timeout = 5s;        .interval = 10s;        .window = 5;        .threshold = 3;    }    .connect_timeout = 10s;    .first_byte_timeout = 900s;    .between_bytes_timeout = 900s;} # Enables use of "Cache-Control: no-cache"sub vcl_recv {    if (req.http.Cache-Control ~ "no-cache") {         set req.hash_always_miss = true;    }
    set req.backend_hint = pub1;
    if (req.http.host == "pub1-cache.example.com") {        set req.backend_hint = pub1;    }
    if (req.http.host == "pub2-cache.example.com") {        set req.backend_hint = pub2;    }}
# Use smaller TTL for non 200 backend response codessub vcl_backend_response {    if (beresp.status != 200){        set beresp.ttl = 60s;    }}
Thanks a lot!Radu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20171209/2ed346be/attachment-0001.html>


More information about the varnish-misc mailing list