[Varnish] #1147: Assert error in VRT_l_beresp_do_stream(), cache/cache_vrt_var.c line 200:
Varnish
varnish-bugs at varnish-cache.org
Mon Jun 4 10:43:17 CEST 2012
#1147: Assert error in VRT_l_beresp_do_stream(), cache/cache_vrt_var.c line 200:
----------------------+-----------------------------------------------------
Reporter: kristian | Owner:
Type: defect | Status: new
Priority: normal | Milestone:
Component: varnishd | Version: trunk
Severity: normal | Keywords:
----------------------+-----------------------------------------------------
From fryer (https://www.varnish-cache.org/lists/pipermail/varnish-
test/2012-June/001084.html):
{{{
2012-06-03 19:32:39 [2,23]: httperf-lru-nostream-gzip(httperf): Starting
test
2012-06-03 19:36:06 WARNING [0,207]: httperf-lru-nostream-gzip(httperf):
Panic detected. I think!
2012-06-03 19:36:06 WARNING [0, 0]: httperf-lru-nostream-gzip(httperf):
Last panic at: Sun, 03 Jun 2012 19:34:54 GMT
Assert error in VRT_l_beresp_do_stream(), cache/cache_vrt_var.c line 200:
Condition((sp) != NULL) not true.
thread = (cache-worker)
ident = Linux,2.6.32-38-generic,x86_64,-smalloc,-smalloc,-hcritbit,epoll
Backtrace:
0x431d48: pan_ic+d8
0x43c9fd: VRT_l_beresp_do_stream+8d
0x7fca059f5919: _end+7fca05372151
0x43939e: VCL_fetch_method+4e
0x4186a9: cnt_fetch+479
0x41accd: CNT_Session+42d
0x4366cd: ses_pool_task+fd
0x433552: Pool_Work_Thread+112
0x4407f8: wrk_thread_real+c8
0x7fca139a29ca: _end+7fca1331f202
sp = 0x7fca04702c20 {
fd = 22, id = 22, xid = 1132068845,
client = 10.20.100.9 14923,
step = STP_FETCH,
handling = deliver,
err_code = 200, err_reason = (null),
restarts = 0, esi_level = 0
busyobj = 0x7fca04013020 {
ws = 0x7fca04013070 {
id = "bo",
{s,f,r,e} = {0x7fca04014aa0,+512,(nil),+58752},
},
do_stream
bodystatus = 3 (chunked),
},
http[bereq] = {
ws = 0x7fca04013070[bo]
"GET",
"/1/5/9/1/6/9.html",
"HTTP/1.1",
"User-Agent: httperf/0.9.0",
"Host: 10.20.100.12",
"X-Forwarded-For: 10.20.100.9",
"X-Varnish: 1132068845",
"Accept-Encoding: gzip",
},
http[beresp] = {
ws = 0x7fca04013070[bo]
"HTTP/1.1",
"200",
"OK",
"Server: nginx/0.7.65",
"Date: Sun, 03 Jun 2012 19:34:54 GMT",
"Content-Type: text/plain",
"Last-Modified: Sun, 03 Jun 2012 19:32:42 GMT",
"Transfer-Encoding: chunked",
"Connection: keep-alive",
"Content-Encoding: gzip",
},
ws = 0x7fca0480b158 {
id = "req",
{s,f,r,e} = {0x7fca0480c730,+136,(nil),+59632},
},
http[req] = {
ws = 0x7fca0480b158[req]
"GET",
"/1/5/9/1/6/9.html",
"HTTP/1.1",
"User-Agent: httperf/0.9.0",
"Host: 10.20.100.12",
"X-Forwarded-For: 10.20.100.9",
},
worker = 0x7fca04926c60 {
ws = 0x7fca04926e20 {
id = "wrk",
{s,f,r,e} = {0x7fca04926450,0x7fca04926450,(nil),+2048},
},
},
vcl = {
srcname = {
"input",
"Default",
},
},
},
2012-06-03 19:36:06 WARNING [0, 0]: httperf-lru-nostream-gzip(httperf):
Varnishstat uptime and measured run-time is too large (measured: 203 stat:
71 diff: 132). Did we crash?
2012-06-03 19:36:06 WARNING [0, 0]: httperf-lru-nostream-gzip(httperf):
Out of bounds: n_lru_nuked(0) less than lower boundary 80000
2012-06-03 19:36:06 WARNING [0, 0]: httperf-lru-nostream-gzip(httperf):
Out of bounds: client_req(262234) less than lower boundary 1999720
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Load:
21:36:06 up 3 days, 7:59, 3 users, load average: 0.61, 0.49, 0.20
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Test name:
httperf-lru-nostream-gzip
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Varnish
options:
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): -t=3600
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf):
-s=malloc,30M
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Varnish
parameters:
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf):
thread_pool_max=5000
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf):
nuke_limit=250
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf):
http_gzip_support=on
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf):
thread_pool_min=200
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Payload
size (excludes headers): 10K
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Branch:
master
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Number of
clients involved: 24
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Type of
test: httperf
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Test
iterations: 1
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Runtime:
203 seconds
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): VCL:
backend foo {
.host = "localhost";
.port = "80";
}
sub vcl_fetch {
set beresp.do_stream = false;
}
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Number of
total connections: 200000
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Note:
connections are subject to rounding when divided among clients. Expect
slight deviations.
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Requests
per connection: 10
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Extra
options to httperf: --wset=1000000,0.1
2012-06-03 19:36:06 [1, 0]: httperf-lru-nostream-gzip(httperf): Httperf
command (last client): httperf --hog --timeout 60 --num-calls 10 --num-
conns 8333 --port 8080 --burst-length 10 --client 23/24 --server
10.20.100.12 --wset=1000000,0.1
}}}
It's fairly consistent, in the sense that only 6-10 of 26 tests succeed.
Note that run-time is a couple of minutes which would equate to quite a
lot of traffic. This specific test is designed to pressure the LRU
mechanisms.
Only seen in master.
--
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1147>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list