[Varnish] #1823: vcl in discarded mode does not clear up

Varnish varnish-bugs at varnish-cache.org
Thu Nov 26 18:28:15 CET 2015

#1823: vcl in discarded mode does not clear up
 Reporter:  hamed.gholamian  |       Type:  defect
   Status:  new              |   Priority:  normal
Milestone:  Varnish 4.1-TP1  |  Component:  build
  Version:  4.1.0            |   Severity:  normal
 Keywords:                   |

 We have a problem with Varnish holding onto VCL in a discarded state,
 which has persisting referenced objects.

 We timestamp our VCL as a reference to the date/time it was loaded. This
 is done using a simple script using varnishadm commands. We should only
 retain 3 'available' configs.

 The problem being experienced is with the 'discarded' VCL, specifically
 the backend polling, which being duplicated. This is causing some
 customers to see high volumes of probes from our delivery servers, which
 is in turn affecting their backend systems.

 Example output from varnishadm -

 discarded  auto/cooling      52 vcl_20151125095333
 discarded  auto/cooling      11 vcl_20151125122048
 discarded  auto/cooling     136 vcl_20151125122328
 discarded  auto/cooling      24 vcl_20151125140126
 discarded  auto/cooling       1 vcl_20151125143340
 discarded  auto/cooling       1 vcl_20151125144531
 discarded  auto/cooling      12 vcl_20151125145312
 discarded  auto/cooling       9 vcl_20151125154306
 discarded  auto/cooling       2 vcl_20151125162540
 available  auto/cold       0 vcl_20151126140831
 available  auto/cold       0 vcl_20151126141010
 available  auto/cold       0 vcl_20151126141620
 active     auto/warm      22 vcl_20151126142113

 The referenced objects never reduce, leaving the 'discarded' VCL on the
 delivery server.

 We have been able to reproduce this in our development environment doing
 the following -

 1. On the varnish delivery server, create a backend (with no probe) and
 then a remote backend with simple website.
 2. Sending requests (like 1000) to varnish delivery server.
 3. On the backend add a new iptables rule to drop port 80.
 4. Reload the VCL a number of times.

 OS: 12.04 3.2.0-70-generic #105-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
 Varnish: varnishd (varnish-4.1.0 revision 3041728)


 Other than restarting varnish, we have not found a mechanism to clear
 these and allow the auto/cooling process to complete, removing the VCL.

 Is this a possible bug or is this expected behavior of the v4.1 VMOD, when
 backends become sick/unreachable?

Ticket URL: <https://www.varnish-cache.org/trac/ticket/1823>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator

More information about the varnish-bugs mailing list