Control: forwarded -1 https://bugzilla.clamav.net/show_bug.cgi?id=11028
Hi Jim,
On 04.06.2014 10:40, Jim Barber wrote:
Okay, I have a hang, and I have the gdb output that you want.
Thanks for the backtrace.
First the PID and Threads:
# ps -eL | grep -P 'LWP|clamd'
PID LWP TTY TIME CMD
26124 26124 ? 00:00:11 clamd
26124 26126 ? 00:00:00 clamd
Two threads, that's normal.
Then connecting to the first thread via gdb:
# gdb /usr/sbin/clamd 26124
[...]
(gdb) bt full
#0 __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
So indeed this looks like a deadlock. But that's strange, as the other
thread seems to be idle...
No locals.
#1 0x00007ff480483467 in _L_lock_913 () from
/lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#2 0x00007ff480483290 in __GI___pthread_mutex_lock (mutex=0x6256a0
<logg_mutex>) at ../nptl/pthread_mutex_lock.c:79
__PRETTY_FUNCTION__ = "__pthread_mutex_lock"
type = 4294966784
#3 0x0000000000405f5f in logg (str=str@entry=0x41f8c9 "Reading
databases from %s\n") at ../shared/output.c:350
../shared/output.c:350 is:
pthread_mutex_lock(&logg_mutex);
That's surprising: I had thought the deadlock would happen with the
reload_mutex, but it actually happens with the logg_mutex.
It tries to log "Reading databases from /var/lib/clamav" and for this
wants to lock the logg_mutex, but the mutex is apparently already
locked, so clamd hangs.
I can't see how this could happen, as the logg_mutex is always unlocked,
before logg() returns, and the other thread is not in the process of
logging something.
Then I attach gdb to the other thread:
# gdb /usr/sbin/clamd 26126
[...]
(gdb) bt full
#0 pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
This thread is just waiting.
#1 0x000000000040c421 in acceptloop_th (arg=0x7ffff5a3e540) at
server-th.c:378
#2 0x00007ff480481062 in start_thread (arg=0x7ff4651b9700) at
pthread_create.c:312
#3 0x00007ff4801b4c1d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111
[...]
If there is anything else you need me to do (such as install other
debug packages from some of the dependent libraries), let me know.
I have forwarded this to upstream now. Let's see, what they say.
Best regards,
Andreas
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org