[Varnish] #438: varnish hangs upon hot reconfiguration

Varnish varnish-bugs at projects.linpro.no
Sat Feb 7 17:57:03 CET 2009

#438: varnish hangs upon hot reconfiguration
 Reporter:  solatis   |       Owner:  phk  
     Type:  defect    |      Status:  new  
 Priority:  high      |   Milestone:       
Component:  varnishd  |     Version:  trunk
 Severity:  critical  |    Keywords:       

 I'm trying to deploy varnish, and when I'm trying to do a hot
 reconfiguration of the config files under a high load, it seems like the
 child processes hang at some point.

 Steps to reproduce:
  1. Add or remove server to/from attached configuration file
  2. varnishadm load new /config
  3. varnishadm use new
  4. Notice that, for a brief moment, the new configuration file is used
 (new server configuration is noticable)
  5. Varnish stops responding (does accept socket), while backends still
 work fine

 To get varnish back in a working state, I have to 'varnishadm stop &&
 varnishadm start'.

 I've ran varnish under gdb and killed it while it was in the unresponsive
 state, but it wasn't really helpful:

 (gdb) bt
 #0  0x0000003bff2c8fdf in poll () from /lib64/libc.so.6
 #1  0x00002af806f67e91 in vev_schedule_one (evb=0x2af80760c540) at
 #2  0x00002af806f678c4 in vev_schedule (evb=0x2af80760c540) at vev.c:365
 #3  0x000000000043226e in mgt_run (dflag=0, T_arg=0x7fffa3b61c46
 "") at mgt_child.c:560
 #4  0x000000000043e0d2 in main (argc=0, argv=0x7fffa3b61588) at
 (gdb) thread 2
 Thread ID 2 not known.

 Please note that, as long as there is no load, nothing goes wrong.

 Also note that loading a new configuration file that is unchanged, works
 fine too.

 Other than that, the steps above always reproduce my problem.

 The version I'm running is trunk from a few hours ago.

Ticket URL: <http://varnish.projects.linpro.no/ticket/438>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator

More information about the varnish-bugs mailing list