[Varnish] #156: Varnish 1.1 branch dies with assert error in WS_ReleaseP

Varnish varnish-bugs at projects.linpro.no
Mon Sep 3 19:55:08 CEST 2007


#156: Varnish 1.1 branch dies with assert error in WS_ReleaseP
----------------------+-----------------------------------------------------
 Reporter:  anders    |       Owner:  phk                  
     Type:  defect    |      Status:  new                  
 Priority:  high      |   Milestone:                       
Component:  varnishd  |     Version:  1.1                  
 Severity:  major     |    Keywords:  core dump WS_ReleaseP
----------------------+-----------------------------------------------------
 I am running Varnish 1.1 branch (up to date to commit 1929) in FreeBSD
 6.2-RELEASE/i386, on Intel hardware.

 Soon after starting Varnish through valgrind (valgrind-352_6 from ports),
 varnishd core dumped:

 Sep  3 19:38:48 cache2 kernel: pid 20542 (varnishd), uid 0: exited on
 signal 6 (core dumped)

 On my console, I get:

 Child said (2, 20542): <<Assert error in WS_ReleaseP(), cache_ws.c line
 125:
   Condition(ws->r != NULL) not true.
   errno = 0 (Unknown error: 0)
 >>
 Child not responding to ping
 Child not responding to ping
 Child not responding to ping
 Child not responding to ping
 (..)

 At this time my cache hit ratio was low (I have a large dataset, this is
 for finn.no).

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

 Let me know if you want the core dump and binaries.

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


More information about the varnish-bugs mailing list