[Pkg-mailman-hackers] Bug#884330: Bug#884330: mailman3-suite: sysv init fails restart for various reasons
Stephen Rothwell
debbugs at rothwell.id.au
Thu Dec 14 22:39:39 UTC 2017
Hi Jonas,
On Thu, 14 Dec 2017 10:53:11 +0100 Jonas Meurer <jonas at freesources.org> wrote:
>
> Am 14.12.2017 um 01:14 schrieb Stephen Rothwell:
> > The sysv init script will fail to do a stop or restart:
>
> Thanks a lot for all the bugreports regarding the init script. As you
> might have seen, the initscript didn't get much testing yet. PEB and me
> both use systemd and it seems like we neglected the sysvinit script.
Thanks for your great short turnarounds on these issues.
> > --die-on-term is passed to uwsgi, so a TERM signal is needed
> > to stop it instead of HUP
>
> That's a valid point. I now looked into the sysvinit script
> uswgi-core[1] again as reference and it uses '--retry=QUIT/30/KILL/5'.
>
> > uwsgi takes some time to terminate, so a following start may fail
> > if it is still stopping
> > stop sill fail if uwsgi is not actually running (which makes
> > restart fail)
> >
> > To fix all this, I changed do_stop to do:
> >
> > start-stop-daemon --stop --quiet --oknodo --retry forever/TERM/5 \
> > --pidfile $PIDFILE --exec $DAEMON
> >
> > The "forever" may not be a good choice ... maybe "TERM/5/KILL/5" or
> > some such would be better. And 5 seconds may also not be a good choice,
> > but it seems to work fairly well on my setup.
>
> I don't like to use 'forever'. Something like 'QUIT/30/KILL/5' looks way
> better: It sends the 'QUIT' signal, waits for 30 seconds and then sends
> the KILL signal (waiting for 5 seconds). If neither succeeds, the stop
> process fails. That seems sensible to me.
OK, so using 'QUIT/30/KILL/5' means that the "stop" action sits around
for 30 seconds and then the KILL gets sent. It seems that uwsgi is
ignoring the QUIT. Maybe 'TERM/30/KILL/5'? After I made that change,
"stop" and "restart" work as expected and fairly fast.
Alternatively, removing "--die-on-term" from DAEMON_ARGS makes
'QUIT/30/KILL/5' work fine.
> > I am also not sure that the {forced-}reload actions are going to work.
>
> Indeed, I updated them as well according to the uwsgi-core sysvinit
> script[1].
>
> Could you give that attached updated init script a try and report back?
> Please test all of the start/stop/restart/reload/force-reload functions.
OK, I tried start/stop/restart/reload/force-reload anbd all seemd to
work as expected *after* I removed "--die-on-term" from DAEMON_ARGS
(using 'QUIT/30/KILL/5' for stopping).
> > Also, maybe start-stop-daemon is not needed for uwsgi as it seems to do
> > its own process management?
>
> Not sure about that. The uwsgi package uses start-stop-daemon as well.
> As that's the common way to handle daemons with sysvinit in Debian, I
> think we should stick to it.
Yes, no problem.
--
Cheers,
Stephen Rothwell
More information about the Pkg-mailman-hackers
mailing list