[Varnish] #173: Varnish dies with assert error in vca_kev
Varnish
varnish-bugs at projects.linpro.no
Mon Oct 29 12:10:35 CET 2007
#173: Varnish dies with assert error in vca_kev
----------------------+-----------------------------------------------------
Reporter: anders | Owner: phk
Type: defect | Status: new
Priority: high | Milestone:
Component: varnishd | Version: trunk
Severity: major | Keywords: varnishd core dump vca_kev
----------------------+-----------------------------------------------------
Running Varnish/trunk (up to date to commit 2183), it crashes with this
message on the console:
{{{
Child said (2, 29080): <<Assert error in vca_kev(),
cache_acceptor_kqueue.c line 91:
Condition((ss[j]->obj) == 0) not true.
errno = 2 (No such file or directory)
>>
Cache child died pid=29080 status=0x86
}}}
OS is FreeBSD/amd 7.0-BETA1 on a SMP, two-CPU system.
Backtrace:
{{{
(gdb) bt
#0 0x0000000800d1248c in thr_kill () from /lib/libc.so.7
#1 0x0000000800d9c63b in abort () from /lib/libc.so.7
#2 0x000000080066fc7f in lbv_assert (func=Could not find the frame base
for "lbv_assert".
) at assert.c:58
#3 0x000000000040840d in vca_kev (kp=0x7fffff5fb3a0)
at cache_acceptor_kqueue.c:91
#4 0x00000000004088c4 in vca_kqueue_main (arg=0x0)
at cache_acceptor_kqueue.c:151
#5 0x0000000800a99958 in pthread_getprio () from /lib/libthr.so.3
#6 0x0000000000000000 in ?? ()
Cannot access memory at address 0x7fffff5fc000
(gdb)
}}}
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/173>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list