[Varnish] #142: Varnishd core dumps because of segmentation violation

Varnish varnish-bugs at projects.linpro.no
Mon Aug 6 10:17:48 CEST 2007


#142: Varnishd core dumps because of segmentation violation
----------------------+-----------------------------------------------------
 Reporter:  anders    |       Owner:  phk                      
     Type:  defect    |      Status:  new                      
 Priority:  high      |   Milestone:                           
Component:  varnishd  |     Version:  1.1                      
 Severity:  major     |    Keywords:  varnishd core dump sig 11
----------------------+-----------------------------------------------------
 I am running Varnish 1.1 (from ports, with patches by des committed july
 25th) in FreeBSD 6.2-RELEASE/amd64, on Intel hardware. I am using varnishd
 with a broad (20 GB sm_balloc) data set here, and that my graphs shows
 upto 1.43 million hashes/objects.

 Now and then, varnishd dies with sig11:

 Aug  6 04:46:27 cache10 kernel: pid 99461 (varnishd), uid 0: exited on
 signal 11 (core dumped)

 Backtrace, with what phk asked for so far:

 root at cache10:~# gdb -c
 /usr/local/varnish/cache10.finn.no/varnishd_2007-08-06_10-
 -01-44.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 11, Segmentation fault.
 #0  0x0000000800a4e550 in ?? ()
 (gdb) bt
 #0  0x0000000800a4e550 in ?? ()
 #1  0x00000030013a590e in ?? ()
 #2  0x00007ffff2390ad0 in ?? ()
 #3  0x0000000001b4d008 in ?? ()
 #4  0x00007ffff2390a00 in ?? ()
 #5  0x0000000000416cc8 in VCL_recv_method (sp=0x1b4d008) at
 vcl_returns.h:37
 Previous frame identical to this frame (corrupt stack?)
 (gdb) info threads
   13 process 100145  0x0000000800a1a63c in ?? ()
   12 process 100045  0x0000000800a4b7fc in ?? ()
   11 process 100069  0x0000000800a4b7fc in ?? ()
   10 process 100079  0x0000000800a4b7fc in ?? ()
   9 process 100110  0x0000000800a2b0fc in ?? ()
   8 process 100111  0x0000000800a1a63c in ?? ()
   7 process 100130  0x0000000800a64f2c in ?? ()
   6 process 100178  0x0000000800a64f2c in ?? ()
   5 process 100133  0x0000000800a64f2c in ?? ()
   4 process 100159  0x0000000800a64f2c in ?? ()
   3 process 100161  0x0000000800a64f2c in ?? ()
   2 process 100115  0x0000000800a64f2c in ?? ()
 * 1 process 100127  0x0000000800a4e550 in ?? ()
 (gdb) thread 1
 [Switching to thread 1 (process 100127)]#0  0x0000000800a4e550 in ?? ()
 (gdb) bt
 #0  0x0000000800a4e550 in ?? ()
 #1  0x00000030013a590e in ?? ()
 #2  0x00007ffff2390ad0 in ?? ()
 #3  0x0000000001b4d008 in ?? ()
 #4  0x00007ffff2390a00 in ?? ()
 #5  0x0000000000416cc8 in VCL_recv_method (sp=0x1b4d008) at
 vcl_returns.h:37
 Previous frame identical to this frame (corrupt stack?)
 (gdb) thread 9
 [Switching to thread 9 (process 100110)]#0  0x0000000800a2b0fc in ?? ()
 (gdb) bt
 #0  0x0000000800a2b0fc in ?? ()
 #1  0x0000000000408163 in vca_kqueue_main (arg=0x0)
     at cache_acceptor_kqueue.c:143
 #2  0x000000080088655b in ?? ()
 #3  0x0000000000000000 in ?? ()
 #4  0x0000000000000000 in ?? ()
 #5  0x000000000053be00 in ?? ()
 #6  0x0000000000000000 in ?? ()
 #7  0x000000000053b000 in ?? ()
 #8  0x0000000000000000 in ?? ()
 Cannot access memory at address 0x7fffff5fc000

 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;
 }

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


More information about the varnish-bugs mailing list