Panic message: Assert error in STV_alloc() even with a small object

Jean-Baptiste Quenot jbq at caraldi.com
Tue Aug 24 15:06:40 CEST 2010


Hi there,

Varnish at my production site sometimes crashes with the following error:

Aug  3 14:58:37 bl5 varnishd[25378]: Child (25495) Panic message:
Assert error in STV_alloc(), stevedore.c line 71:   Condition((st) !=
NULL) not true. Assert error in STV_alloc(), stevedore.c line 71:
Condition((st) != NULL) not true. Assert error in STV_alloc(),
stevedore.c line 71:   Condition((st) != NULL) not true. thread =
(cache-worker) thread = (cache-worker) thread = (cache-worker)
Backtrace:   Backtrace:   0x41d955: /usr/sbin/varnishd [0x41d955]
0x41d955: /usr/sbin/varnishd [0x41d955]   0x433f35:
/usr/sbin/varnishd(STV_alloc+0xa5) [0x433f35]   0x417402:
/usr/sbin/varnishd(Fetch+0xae2) [0x417402]   0x4115af:
/usr/sbin/varnishd [0x4115af]   0x412875:
/usr/sbin/varnishd(CNT_Session+0x3a5) [0x412875]   0x41f4f6:
/usr/sbin/varnishd [0x41f4f6]   0x41eee0: /usr/sbin/varnishd
[0x41eee0]   0x7fd67e4473ba: /lib/libpthread.so.0 [0x7fd67e4473ba]
0x7fd67dd14fcd: /lib/libc.so.6(clone+0x6d) [0x7fd67dd14fcd] sp =
0x7fd608502008 {   fd = 180, id = 180, xid = 1466656671,   clie
 nt = 90.8.153.250:1572,   step = STP_FETCH,   handling = fetch,
restarts = 0, esis = 0   ws = 0x7fd608502080 {      id = "sess",
{s,f,r,e} = {0x7fd608502820,+592,(nil),+16384},   },   http[req] = {
  ws = 0x7fd608502080[sess]       "GET",
"/css/default.css?921d5cc",       "HTTP/1.1",       "Accept: */*",
  "Accept-Language: fr",       "UA-CPU: x86",       "User-Agent:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Orange 8.0; .NET
CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)",       "Host:
static.company.com",       "Connection: Keep-Alive",
"Accept-Encoding: gzip",   },   worker = 0x7fd60bef5bb0     vcl = {
   srcname = {         "input",         "Default",       },     },
obj = 0x7fd658058000 {     refcnt = 1, xid = 1466656671,     ws =
0x7fd658058028 {        id = "obj",       {s,f,r,e} =
{0x7fd658058368,+251,(nil),+7320},     },     http[obj] = {       ws =
0x7fd658058028[obj]         "HTTP/1.1",         "200",         "OK",
      "Server: nginx",         "Date: Tue, 03 Aug 2010 14:58:31 GMT",
       "Content-Type: text/css",         "Last-Modified: Mon, 02 Aug
2010 15:56:50 GMT",         "Vary: Accept-Encoding",         "Expires:
Thu, 31 Dec 2037 23:55:55 GMT",         "Cache-Control:
max-age=315360000",         "Content-Encoding: gzip",     },     len =
0,     store = {     },   }, },
Aug  3 14:58:37 bl5 varnishd[25378]: child (18364) Started
Aug  3 14:58:37 bl5 varnishd[25378]: Child (18364) said Closed fds: 4
5 6 7 11 12 14 15
Aug  3 14:58:37 bl5 varnishd[25378]: Child (18364) said Child starts
Aug  3 14:58:37 bl5 varnishd[25378]: Child (18364) said managed to
mmap 1073741824 bytes of 1073741824
Aug  3 14:58:37 bl5 varnishd[25378]: Child (18364) said Ready

I read the comments on issue #503 carefully[1] but the above object is
only 231kB, whereas Varnish has 1GB of storage allocated.  Of course
crashes do not always happen on the same URL, they also happen on
large objects, but this one is interesting because it is a small one.

This is varnish 2.0.6 running on a 64-bit version of Ubuntu 9.04, with
a patch to support Apache LogFormat.

What's wrong?  Shall I update to 2.1.3, although I don't see anything
related to this problem in the changelog?

Thanks in advance,
-- 
Jean-Baptiste Quenot
[1] http://varnish-cache.org/ticket/503




More information about the varnish-dev mailing list