[Varnish] #211: Cache child died status=0x9 after ping timeout

Varnish varnish-bugs at projects.linpro.no
Sat Jun 21 11:43:17 CEST 2008


#211: Cache child died status=0x9 after ping timeout
------------------------+---------------------------------------------------
 Reporter:  davecheney  |        Owner:  des   
     Type:  defect      |       Status:  closed
 Priority:  normal      |    Milestone:        
Component:  build       |      Version:  trunk 
 Severity:  normal      |   Resolution:  fixed 
 Keywords:              |  
------------------------+---------------------------------------------------
Changes (by phk):

  * status:  new => closed
  * resolution:  => fixed

Old description:

> trunk, r2513.
>
> Child is killed by SIGTERM by the master process after failing ping
> timeout, happens every 8 to 24 hours.
>
> [root at rado varnish-cache]# /opt/varnish-svn/sbin/varnishd -F -a :80 -f
> default.vcl -T 127.0.0.1:6082 -t 120 -w 1,1000,120 -u varnish -g varnish
> -p client_http11=on -p backend_http11=on -p sess_timeout=30 -s
> file,/var/lib/varnish/varnish_storage.bin,2G -P /var/run/varnish.pid
> storage_file: filename: /var/lib/varnish/varnish_storage.bin size 2048
> MB.
> Using old SHMFILE
> rolling(1)...
> rolling(2)...
> start child pid 1740
> Child said (2, 1740): <<Child starts>>
> Child said (2, 1740): <<managed to mmap 2147483648 bytes of 2147483648>>
> Child said (2, 1740): <<Ready>>
> Child not responding to ping
> Child not responding to ping
> Cache child died pid=1740 status=0x9
> Clean child
> Child cleaned
> start child pid 8242
> Child said (2, 8242): <<Child starts>>
> Child said (2, 8242): <<managed to mmap 2147483648 bytes of 2147483648>>
> Child said (2, 8242): <<Ready>>
>
> backend b1 { .host = "172.16.0.72"; }
> backend b2 { .host = "172.16.0.73"; }
>
> director default random {
>         {
>                 .backend = b1;
>                 .weight = 1;
>         }
>         {
>                 .backend = b2;
>                 .weight = 1;
>         }
> }
>
> sub vcl_recv {
>         set req.backend = b1;
>         set req.backend = b2;
>         set req.backend = default;
>         if (req.request != "GET" && req.request != "HEAD") {
>                 pipe;
>         }
>         if (req.http.Expect) {
>                 pipe;
>         }
>         if (req.http.Authenticate || req.http.Cookie) {
>                 lookup;
>         }
>         lookup;
> }
>
> sub vcl_fetch {
>         if (!obj.valid) {
>                 error;
>         }
>         if (!obj.cacheable) {
>                 pass;
>         }
>         if (obj.http.Set-Cookie) {
>                 insert;
>         }
>         insert;
> }

New description:

 trunk, r2513.

 Child is killed by SIGTERM by the master process after failing ping
 timeout, happens every 8 to 24 hours.
 {{{
 [root at rado varnish-cache]# /opt/varnish-svn/sbin/varnishd -F -a :80 -f
 default.vcl -T 127.0.0.1:6082 -t 120 -w 1,1000,120 -u varnish -g varnish
 -p client_http11=on -p backend_http11=on -p sess_timeout=30 -s
 file,/var/lib/varnish/varnish_storage.bin,2G -P /var/run/varnish.pid
 storage_file: filename: /var/lib/varnish/varnish_storage.bin size 2048 MB.
 Using old SHMFILE
 rolling(1)...
 rolling(2)...
 start child pid 1740
 Child said (2, 1740): <<Child starts>>
 Child said (2, 1740): <<managed to mmap 2147483648 bytes of 2147483648>>
 Child said (2, 1740): <<Ready>>
 Child not responding to ping
 Child not responding to ping
 Cache child died pid=1740 status=0x9
 Clean child
 Child cleaned
 start child pid 8242
 Child said (2, 8242): <<Child starts>>
 Child said (2, 8242): <<managed to mmap 2147483648 bytes of 2147483648>>
 Child said (2, 8242): <<Ready>>
 }}}
 {{{
 backend b1 { .host = "172.16.0.72"; }
 backend b2 { .host = "172.16.0.73"; }

 director default random {
         {
                 .backend = b1;
                 .weight = 1;
         }
         {
                 .backend = b2;
                 .weight = 1;
         }
 }

 sub vcl_recv {
         set req.backend = b1;
         set req.backend = b2;
         set req.backend = default;
         if (req.request != "GET" && req.request != "HEAD") {
                 pipe;
         }
         if (req.http.Expect) {
                 pipe;
         }
         if (req.http.Authenticate || req.http.Cookie) {
                 lookup;
         }
         lookup;
 }

 sub vcl_fetch {
         if (!obj.valid) {
                 error;
         }
         if (!obj.cacheable) {
                 pass;
         }
         if (obj.http.Set-Cookie) {
                 insert;
         }
         insert;
 }
 }}}

Comment:

 This is correct behaviour.

 The question is why PING does not get a response.

 This ticket does not really help answer that, and a lot of work have been
 done on the usual suspects (thread pool for insance) since then, so I will
 close this ticket, inviting reopen should this issue reapper.

-- 
Ticket URL: <http://varnish.projects.linpro.no/ticket/211#comment:1>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator


More information about the varnish-bugs mailing list