linux-traipu team mailing list archive
-
linux-traipu team
-
Mailing list archive
-
Message #03514
[Bug 920175] Re: Drizzled cannot shutdown itself on ubuntu, upstart restarts it
Excerpts from Henrik Ingo's message of Sun Jan 22 21:43:11 UTC 2012:
> Public bug reported:
>
> This seems to be specific to running drizzled under upstart, ie modern
> Ubuntu versions. It happens as installed with the debs that come with
> Ubuntu and also the basis for our future own deb downloads. I don't know
> if this is an error in our upstart script, or upstart itself. In
> particular, should upstart with a respawn directive allow the service to
> shutdown when it exits without error?
>
> The symptom is that "shutdown" given via the client is ineffective /
> becomes a restart.
>
>
> hingo@mermaid:~/hacking/drizzle/deb$ ps aux|grep drizzle
> root 19723 0.0 0.0 2040 508 ? Ss 23:33 0:00 /bin/sh -e -c exec /usr/sbin/drizzled --user drizzle 2>&1 | logger -t drizzle -p daemon.err /bin/sh
> drizzle 19724 0.6 1.9 395252 39592 ? Sl 23:33 0:00 /usr/sbin/drizzled --user drizzle
> root 19725 0.0 0.0 1952 540 ? S 23:33 0:00 logger -t drizzle -p daemon.err
> hingo 19749 0.0 0.0 5656 800 pts/0 S+ 23:33 0:00 grep drizzle
> hingo@mermaid:~/hacking/drizzle/deb$ drizzle --execute="shutdown"
> hingo@mermaid:~/hacking/drizzle/deb$ ps aux|grep drizzle
> root 19752 0.0 0.0 2040 512 ? Ss 23:33 0:00 /bin/sh -e -c exec /usr/sbin/drizzled --user drizzle 2>&1 | logger -t drizzle -p daemon.err /bin/sh
> drizzle 19753 10.0 1.9 387056 38948 ? Sl 23:33 0:00 /usr/sbin/drizzled --user drizzle
> root 19754 0.0 0.0 1952 544 ? S 23:33 0:00 logger -t drizzle -p daemon.err
> hingo 19776 0.0 0.0 5656 796 pts/0 S+ 23:33 0:00 grep drizzle
> hingo@mermaid:~/hacking/drizzle/deb$ sudo service drizzle stop
> drizzle stop/waiting
> hingo@mermaid:~/hacking/drizzle/deb$ ps aux|grep drizzle
> hingo 19836 0.0 0.0 5656 800 pts/0 S+ 23:40 0:00 grep drizzle
> hingo@mermaid:~/hacking/drizzle/deb$
>
Hi Henrik, this makes sense.
We need to define 0 as a normal exit code for drizzle.
man 5 init states that using respawn on a job will cause upstart to respawn
the process unless you change the "goal" of the job to 'stop'. However, you
can also define a normal exit code that will allow the job to transition to
stop.
>From man 5 init:
respawn
A service or task with this stanza will be automatically started
if it should stop abnormally. All reasons for a service stopping,
except the stop(8) command itself, are considered abnormal.
Tasks may exit with a zero exit status to prevent being respawned.
respawn limit COUNT INTERVAL
Respawning is subject to a limit, if the job is respawned more
than COUNT times in INTERVAL seconds, it will be considered to be
hav‐ ing deeper problems and will be stopped. Default COUNT is
10. Default INTERVAL is 5 seconds.
This only applies to automatic respawns and not the restart(8)
command.
normal exit STATUS|SIGNAL...
Additional exit statuses or even signals may be added, if the
job process terminates with any of these it will not be considered
to have failed and will not be respawned.
normal exit 0 1 TERM HUP
** Also affects: drizzle (Ubuntu)
Importance: Undecided
Status: New
** Changed in: drizzle
Status: Confirmed => Invalid
** Changed in: drizzle (Ubuntu)
Status: New => Confirmed
** Changed in: drizzle (Ubuntu)
Importance: Undecided => Medium
--
You received this bug notification because you are a member of UBUNTU -
AL - BR, which is subscribed to Drizzle.
https://bugs.launchpad.net/bugs/920175
Title:
Drizzled cannot shutdown itself on ubuntu, upstart restarts it
Status in A Lightweight SQL Database for Cloud Infrastructure and Web Applications:
Invalid
Status in “drizzle” package in Ubuntu:
Confirmed
Bug description:
This seems to be specific to running drizzled under upstart, ie modern
Ubuntu versions. It happens as installed with the debs that come with
Ubuntu and also the basis for our future own deb downloads. I don't
know if this is an error in our upstart script, or upstart itself. In
particular, should upstart with a respawn directive allow the service
to shutdown when it exits without error?
The symptom is that "shutdown" given via the client is ineffective /
becomes a restart.
hingo@mermaid:~/hacking/drizzle/deb$ ps aux|grep drizzle
root 19723 0.0 0.0 2040 508 ? Ss 23:33 0:00 /bin/sh -e -c exec /usr/sbin/drizzled --user drizzle 2>&1 | logger -t drizzle -p daemon.err /bin/sh
drizzle 19724 0.6 1.9 395252 39592 ? Sl 23:33 0:00 /usr/sbin/drizzled --user drizzle
root 19725 0.0 0.0 1952 540 ? S 23:33 0:00 logger -t drizzle -p daemon.err
hingo 19749 0.0 0.0 5656 800 pts/0 S+ 23:33 0:00 grep drizzle
hingo@mermaid:~/hacking/drizzle/deb$ drizzle --execute="shutdown"
hingo@mermaid:~/hacking/drizzle/deb$ ps aux|grep drizzle
root 19752 0.0 0.0 2040 512 ? Ss 23:33 0:00 /bin/sh -e -c exec /usr/sbin/drizzled --user drizzle 2>&1 | logger -t drizzle -p daemon.err /bin/sh
drizzle 19753 10.0 1.9 387056 38948 ? Sl 23:33 0:00 /usr/sbin/drizzled --user drizzle
root 19754 0.0 0.0 1952 544 ? S 23:33 0:00 logger -t drizzle -p daemon.err
hingo 19776 0.0 0.0 5656 796 pts/0 S+ 23:33 0:00 grep drizzle
hingo@mermaid:~/hacking/drizzle/deb$ sudo service drizzle stop
drizzle stop/waiting
hingo@mermaid:~/hacking/drizzle/deb$ ps aux|grep drizzle
hingo 19836 0.0 0.0 5656 800 pts/0 S+ 23:40 0:00 grep drizzle
hingo@mermaid:~/hacking/drizzle/deb$
The standard way "service drizzle stop" works.
To manage notifications about this bug go to:
https://bugs.launchpad.net/drizzle/+bug/920175/+subscriptions
References