[Varnish] #548: Sig 11 crash in trunk 4199
Varnish
varnish-bugs at projects.linpro.no
Mon Jan 25 13:19:28 CET 2010
#548: Sig 11 crash in trunk 4199
---------------------------------------------+------------------------------
Reporter: anders | Owner: phk
Type: defect | Status: new
Priority: normal | Milestone: Varnish 2.1 release
Component: varnishd | Version: trunk
Severity: normal | Resolution:
Keywords: sig 11 segmentation fault trunk |
---------------------------------------------+------------------------------
Comment (by anders):
This is still happening with trunk/4434, any chance for a resolution:
{{{
(gdb) bt
#0 0x00000008009cf35f in getframeaddr (level=Variable "level" is not
available.
) at execinfo.c:285
#1 0x00000008009cf394 in backtrace (buffer=Variable "buffer" is not
available.
) at execinfo.c:70
#2 0x0000000000421ac8 in pan_backtrace () at cache_panic.c:273
#3 0x0000000000421e77 in pan_ic (func=Variable "func" is not available.
) at cache_panic.c:329
#4 0x000000000041c82d in HSH_Lookup (sp=0x10eacf2008, poh=0x7fffadb68720)
at cache_hash.c:407
#5 0x0000000000411ba4 in cnt_lookup (sp=0x10eacf2008) at
cache_center.c:780
#6 0x0000000000413f96 in CNT_Session (sp=0x10eacf2008) at steps.h:38
#7 0x0000000000423d01 in wrk_do_cnt_sess (w=0x7fffadb6e800, priv=Variable
"priv" is not available.
)
at cache_pool.c:277
#8 0x000000000042300d in wrk_thread_real (qp=0x80110f4c0,
shm_workspace=Variable "shm_workspace" is not available.
)
at cache_pool.c:173
#9 0x0000000800bf04d1 in pthread_getprio () from /lib/libthr.so.3
#10 0x00007fffad970000 in ?? ()
Cannot access memory at address 0x7fffadb70000
(gdb) frame 4
#4 0x000000000041c82d in HSH_Lookup (sp=0x10eacf2008, poh=0x7fffadb68720)
at cache_hash.c:407
407 CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
(gdb) print *sp
$1 = {magic = 741317722, fd = 3699, id = 3699, xid = 1480106783, restarts
= 0,
esis = 0, disable_esi = 0, wrk = 0x7fffadb6e800, sockaddrlen = 16,
mysockaddrlen = 128, sockaddr = 0x10eacf2b50, mysockaddr = 0x10eacf2bd0,
mylsock = 0x80111be80, addr = 0x10eacf2c50 "80.213.121.208",
port = 0x10eacf2c5f "4747", doclose = 0x0, http = 0x10eacf2258,
http0 = 0x10eacf26c8, ws = {{magic = 905626964, id = 0x446688 "sess",
s = 0x10eacf2c50 "80.213.121.208",
f = 0x10eacf3011 "tion: Keep-Alive, TE", r = 0x0,
e = 0x10eacf6c50 '¥' <repeats 200 times>..., overflow = 0}},
ws_ses = 0x10eacf2c64 "GET", ws_req = 0x10eacf2ffa "Accept-Encoding:
gzip",
digest = "TòWMW¨\tX.º¹â¨EC\035V\002À\f\201Ós²G\031\221Cm'öÀ", htc = {{
magic = 1041886673, fd = 3699, ws = 0x10eacf2078, rxbuf = {
b = 0x10eacf2c64 "GET", e = 0x10eacf2ffa "Accept-Encoding: gzip"},
pipeline = {b = 0x0, e = 0x0}}}, t_open = 1264365582.6530151,
t_req = 1264365582.7233465, t_resp = nan(0x8000000000000),
t_end = 1264365582.6530151, connect_timeout = 0.40000000000000002,
first_byte_timeout = 60, between_bytes_timeout = 60, grace = 300,
step = STP_LOOKUP, cur_method = 0, handling = 3, sendbody = 0 '\0',
wantbody = 1 '\001', err_code = 0, err_reason = 0x0, list = {
vtqe_next = 0x80e0cf008, vtqe_prev = 0xee38bb170}, director =
0x80bbeeec8,
vbe = 0x0, obj = 0x0, objcore = 0x0, objhead = 0x0, vcl = 0x80bbf90e8,
mem = 0x10eacf2000, workreq = {list = {vtqe_next = 0x0, vtqe_prev =
0x0},
func = 0x423c40 <wrk_do_cnt_sess>, priv = 0x10eacf2008}, acct = {
first = 1264365582.6346316, sess = 1, req = 1, pipe = 0, pass = 0,
fetch = 0, hdrbytes = 345, bodybytes = 1135}, acct_req = {first = 0,
sess = 0, req = 1, pipe = 0, pass = 0, fetch = 0, hdrbytes = 0,
bodybytes = 0}}
(gdb) print *oc
$2 = {magic = 1294996226, obj = 0x0, objhead = 0xfa6ab4a90,
timer_when = 1264888298.0438495, flags = 0, timer_idx = 0, list = {
vtqe_next = 0x0, vtqe_prev = 0xfa6ab4aa8}, lru_list = {
vle_next = 0x12b0aad2e0, vle_prev = 0x80112b688}, ban_list = {
vtqe_next = 0x10e4efc580, vtqe_prev = 0x15ef767478}, smp_seg = 0x0,
ban = 0x0}
}}}
Some lines around line 407, cache_hash.c:
{{{
if (oc != NULL) {
o = oc->obj;
CHECK_OBJ_NOTNULL(o, OBJECT_MAGIC);
/* We found an object we like */
o->refcnt++;
if (o->hits < INT_MAX)
o->hits++;
assert(oh->refcnt > 1);
Lck_Unlock(&oh->mtx);
assert(hash->deref(oh));
*poh = oh;
return (oc);
}
}}}
--
Ticket URL: <http://varnish.projects.linpro.no/ticket/548#comment:5>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list