Bug#675081: proftpd-basic: logrotate kills proftpd instead of restarting it
Cyril Bouthors
cyb at debian.org
Sun Feb 3 22:38:08 UTC 2013
reopen 675081
thanks
Hi,
We've encountered the exact same issue on several of our squeeze machines:
logrotate kills proftpd instead of restarting it but the patch used in
1.3.5~rc1-2 does not fix the issue.
Before the patch, it only happened ~5 times out of 100 machines running ProFTPd
over ~2 years so I guess it's not common since that makes a mean time between
failure (MTBF) of 40 years (100*2/5).
We've applied the following patch but it only made things worst:
*** proftpd.00 2013-02-01 11:08:07.000000000 +0100
--- proftpd 2013-02-01 11:09:11.446049737 +0100
***************
*** 108,114 ****
log_end_msg 0
else
SIGNAL="KILL"
! start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"
if [ $? != 0 ]; then
log_end_msg 1
[ $2 != 0 ] || exit 0
--- 108,114 ----
log_end_msg 0
else
SIGNAL="KILL"
! start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE" --retry=TERM/10/KILL/5
if [ $? != 0 ]; then
log_end_msg 1
[ $2 != 0 ] || exit 0
***************
*** 174,180 ****
force-reload|restart)
if [ "x$RUN" = "xyes" ] ; then
signal stop 1
- sleep 2
start
else
if [ "x$INETD" = "xyes" ] ; then
--- 174,179 ----
48 proftpd were killed out of 100 which makes a MTBF of 2 days!
I guess the issue is that start-stop-daemon waits 5 seconds after sending
SIGKILL but the OS can take more than that to really kill the process if it is
under heavy load which often happens during cron.daily.
Maybe we should tell start-stop-daemon to wait 'forever' until the process is
really dead before we restart it?
According to start-stop-daemon(8), the options should be:
start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE" --retry=TERM/10/KILL/forever
Please tell me what you think.
--
,''`.
: :' : Cyril Bouthors
`. `' Debian.org
`-
More information about the Pkg-proftpd-maintainers
mailing list