Package: squid3
Version: 3.1.20-2.2
Severity: normal
I noticed that squid would occasionally restart its worker process.
Looking into system logs I discovered that it would die by signal 6
about twice a week. That doesn't make a useful bug report, so I set
ulimit -c unlimited in the init script and voilà there is a core file.
Here is a traceback of the assertion:
(gdb) bt full
#0 0x00007f8b41f38475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1 0x00007f8b41f3b6f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#2 0x00007f8b43e1b5bc in xassert (msg=<optimized out>, file=<optimized out>,
line=<optimized out>) at debug.cc:556
No locals.
#3 0x00007f8b43ed6c68 in commHandleRead (fd=14, data=0x7f8b3f2265c8) at
comm.cc:302
ccb = 0x7f8b3f2265c8
retval = <optimized out>
#4 0x00007f8b43e19d59 in comm_select (msec=<optimized out>) at
comm_epoll.cc:307
i = <optimized out>
fd = 14
num = <optimized out>
F = 0x7f8b3fb294a0
hdl = 0x7f8b43ed6b30 <commHandleRead(int, void*)>
cevents = 0x7f8b3f0e3010
#5 0x00007f8b43ed9a1e in CommSelectEngine::checkEvents (this=<optimized out>,
timeout=<optimized out>) at comm.cc:2688
last_timeout = 1371590470
#6 0x00007f8b43e2f571 in EventLoop::checkEngine (this=0x7fffec6c8810,
engine=0x7fffec6c87d0, primary=<optimized out>)
at EventLoop.cc:50
requested_delay = <optimized out>
#7 0x00007f8b43e2f7f5 in EventLoop::runOnce (this=this@entry=0x7fffec6c8810)
at EventLoop.cc:124
sawActivity = <optimized out>
waitingEngine = 0x7fffec6c87d0
#8 0x00007f8b43e2f8d8 in EventLoop::run (this=0x7fffec6c8810) at
EventLoop.cc:94
No locals.
#9 0x00007f8b43e7eb33 in SquidMain (argc=<optimized out>, argv=<optimized
out>) at main.cc:1418
signalEngine = {<AsyncEngine> = {_vptr.AsyncEngine = 0x7f8b442078f0},
loop = @0x7fffec6c8810}
store_engine = {<AsyncEngine> = {_vptr.AsyncEngine = 0x7f8b44207930},
<No data fields>}
comm_engine = {<AsyncEngine> = {_vptr.AsyncEngine = 0x7f8b44209d10},
<No data fields>}
mainLoop = {errcount = 0, last_loop = false, engines = {capacity = 16,
count = 4, items = 0x7f8b45eadae0}, timeService =
0x7fffec6c87e0, primaryEngine = 0x7fffec6c87d0, loop_delay = 1000, error =
false, runOnceResult = false}
time_engine = {_vptr.TimeEngine = 0x7f8b442094f0}
#10 0x00007f8b43ddc89b in SquidMainSafe (argv=<optimized out>, argc=<optimized
out>) at main.cc:1176
No locals.
#11 main (argc=<optimized out>, argv=<optimized out>) at main.cc:1168
No locals.
(gdb)
According to the source the particular assertion being triggered from
commHandleRead is this one:
assert(commio_has_callback(fd, IOCB_READ, ccb));
We already see that fd is 14 above, but what is ccb?
(gdb) print *ccb
$1 = {type = IOCB_READ, fd = 14, callback = {p_ = 0x0}, buf = 0x7f8b59589eb0
"¶\002", freefunc = 0, size = 2, offset = 0,
errcode = COMM_ERR_CLOSING, xerrno = 0}
(gdb)
Not sure whether this is already enough to track the issue down. Can I
provide anything else of interest? I am keeping the core around for some
time in case you have specific questions about it. I will also try to
collect a few more cores to see if it is always the same assertion.
Helmut
-- System Information:
An wheezy amd64 system.
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]