<html><head></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div><div>Hi,</div><div><br></div><div>I have an issue with varnish (v5.2.1) returning incomplete responses when the cache gets full and it starts nuking objects.</div><div>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))".</div><div><br></div><div>Do you see anything wrong in the vlc file? Should there be a mandatory return statement in the vcl_recv function?</div><div><br></div><div><br></div><div>vcl 4.0;</div><div><br></div><div>backend pub1 {</div><div> .host = "pub1.example.com";</div><div> .port = "80";</div><div> .probe = {</div><div> .url = "/";</div><div> .timeout = 5s;</div><div> .interval = 10s;</div><div> .window = 5;</div><div> .threshold = 3;</div><div> }</div><div> .connect_timeout = 10s;</div><div> .first_byte_timeout = 900s;</div><div> .between_bytes_timeout = 900s;</div><div>}</div><div><br></div><div>backend pub2 {</div><div> .host = "pub2.example.com";</div><div> .port = "80";</div><div> .probe = {</div><div> .url = "/";</div><div> .timeout = 5s;</div><div> .interval = 10s;</div><div> .window = 5;</div><div> .threshold = 3;</div><div> }</div><div> .connect_timeout = 10s;</div><div> .first_byte_timeout = 900s;</div><div> .between_bytes_timeout = 900s;</div><div>}</div><div> </div><div># Enables use of "Cache-Control: no-cache"</div><div>sub vcl_recv {</div><div> if (req.http.Cache-Control ~ "no-cache") {</div><div> set req.hash_always_miss = true;</div><div> }</div><div><br></div><div> set req.backend_hint = pub1;</div><div><br></div><div> if (req.http.host == "pub1-cache.example.com") {</div><div> set req.backend_hint = pub1;</div><div> }</div><div><br></div><div> if (req.http.host == "pub2-cache.example.com") {</div><div> set req.backend_hint = pub2;</div><div> }</div><div>}</div><div><br></div><div># Use smaller TTL for non 200 backend response codes</div><div>sub vcl_backend_response {</div><div> if (beresp.status != 200){</div><div> set beresp.ttl = 60s;</div><div> }</div><div>}</div><div><br></div><div>Thanks a lot!</div><div>Radu</div><br></div></div></body></html>