[Varnish] #162: Varnish trunk dies with assert error in SES_Delete()

Varnish varnish-bugs at projects.linpro.no
Mon Sep 24 20:16:26 CEST 2007


#162: Varnish trunk dies with assert error in SES_Delete()
----------------------+-----------------------------------------------------
 Reporter:  anders    |       Owner:  phk                                        
     Type:  defect    |      Status:  new                                        
 Priority:  high      |   Milestone:                                             
Component:  varnishd  |     Version:  trunk                                      
 Severity:  normal    |    Keywords:  varnishd core dump SES_Delete cache_session
----------------------+-----------------------------------------------------
 I am running Varnish trunk (up to date to commit 1975) in FreeBSD
 6.2-RELEASE/amd64, on Intel hardware.

 Running with half the load of Squid servers with similar hardware, it
 died:

 Sep 24 17:27:33 cache10 kernel: pid 29948 (varnishd), uid 0: exited on
 signal 6 (core dumped)

 On the console:

 {{{
 Child said (2, 29948): <<Assert error in SES_Delete(), cache_session.c
 line 340:
   Condition((sp->vcl) == 0) not true.
   errno = 9 (Bad file descriptor)
 >>
 Child not responding to ping
 Child not responding to ping
 Child not responding to ping
 Child not responding to ping
 Child not responding to ping
 Child not responding to ping
 Cache child died pid=29948 status=0x86
 }}}

 My VCL:

 {{{
 backend default {
              set backend.host = "192.168.0.3";
              set backend.port = "80";
         }
 acl purge {
         "192.168.0.4"/32;
 }
 sub vcl_recv {
         if ((req.http.host ~ "^(cache.finn.no|finn.no|www.finn.no)$") ||
 (req.http.host == "banner.finn.no" && req.url ~
 "^/(jsp2|finn/gojsp|daily|board|auximg/papirfly|finn/cacheable|crossdomain.xml)"))
 {
                 if (req.request == "GET" || req.request == "HEAD") {
                         lookup;
                 } elsif (req.request == "PURGE") {
                         if (!client.ip ~ purge) {
                                 error 405 "Not allowed.";
                         }
                         lookup;
                 } else {
                         pipe;
                 }
         } else {
                 error 403 "Access denied. Contact cacheadmin at finn.no if
 you have problems.";
         }
 }
 sub vcl_miss {
         if (req.request == "PURGE") {
                 error 404 "Not in cache.";
         } else {
                 fetch;
         }
 }
 sub vcl_hit {
         if (req.request == "PURGE") {
                 set obj.ttl = 0s;
                 error 200 "Purged.";
         } else {
                 deliver;
         }
 }
 sub vcl_fetch {
         if (obj.ttl < 86400s) {
                 set obj.ttl = 604800s;
         }
         if (obj.http.Cookie) {
                 remove obj.http.Cookie;
         }
         if (obj.http.Set-Cookie) {
                 remove obj.http.Set-Cookie;
         }
         insert;
 }
 }}}

 Backtrace:

 {{{
 # gdb -c varnishd_2007-09-24_17-30-00.core -s /usr/local/sbin/varnishd
 GNU gdb 6.1.1 [FreeBSD]
 Copyright 2004 Free Software Foundation, Inc.
 GDB is free software, covered by the GNU General Public License, and you
 are
 welcome to change it and/or distribute copies of it under certain
 conditions.
 Type "show copying" to see the conditions.
 There is absolutely no warranty for GDB.  Type "show warranty" for
 details.
 This GDB was configured as "amd64-marcel-freebsd"...
 Core was generated by `varnishd'.
 Program terminated with signal 6, Aborted.
 #0  0x0000000800c080dc in ?? ()
 (gdb) bt
 #0  0x0000000800c080dc in ?? ()
 #1  0x000000080098d01c in ?? ()
 #2  0x00007fffff5faeac in ?? ()
 #3  0x0000000800c8716d in ?? ()
 #4  0x0000000000000000 in ?? ()
 #5  0xffffffdf000186e5 in ?? ()
 #6  0xffffffffffffffff in ?? ()
 #7  0x00000000ffffffff in ?? ()
 #8  0x0000000000542e10 in ?? ()
 #9  0x0000000000542e00 in ?? ()
 #10 0x0000000000542e10 in ?? ()
 #11 0x000000080066ab99 in ?? ()
 #12 0x0000000000000009 in ?? ()
 #13 0x0000000800dbe8a0 in ?? ()
 #14 0x00000000004310f9 in __func__.4 ()
 Cannot access memory at address 0x4310b8
 (gdb)
 }}}

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


More information about the varnish-bugs mailing list