Hello all,

It seems that freshclam can be hung if it receives a HUP shortly after
receiving an alrm (that is, when waking up to check for a new version).

The last several lines of an strace reveal:
rt_sigaction(SIGALRM, {0x804ac70, [], 
SA_RESTORER|SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x3fff608, 0x8050036}, 
{SIG_DFL}, 8) = 0
rt_sigaction(SIGUSR1, {0x804ac70, [], 
SA_RESTORER|SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x3fff608, 0x8050036}, 
{SIG_DFL}, 8) = 0
time([1107999334])                      = 1107999334
alarm(7200)                             = 0
pause()                                 = ? ERESTARTNOHAND (To be restarted)
--- SIGALRM (Alarm clock) @ 0 (0) ---
write(3, "Received signal 14, wake up\n", 28) = 28
--- SIGHUP (Hangup) @ 0 (0) ---
futex(0x8051a6c, FUTEX_WAIT, 2, NULL <unfinished ...>

And there it hangs.  The last thing in the logfile is

--------------------------------------
Received signal 1, re-opening log file

In other words, it never logs the wake up line.  To reproduce, run
freshclam as a daemon, let it get to the pause(), and then do:

PID=`cat /var/run/clamav/freshclam.pid`; kill -ALRM $PID ; kill -HUP $PID 

Thanks, and let me know of I can be of any assistance,
-- 
 --------------------------------------------------------------------------
|  Stephen Gran                  | Ever get the feeling that the world's   |
|  [EMAIL PROTECTED]             | on tape and one of the reels is         |
|  http://www.lobefin.net/~steve | missing?   -- Rich Little               |
 --------------------------------------------------------------------------
_______________________________________________
http://lists.clamav.net/cgi-bin/mailman/listinfo/clamav-devel

Reply via email to