[debian-mysql] Bug#663060: mysql-server-5.1: '/etc/init.d/mysql start' exits with status code 1 on success if debian-start prints nothing

David Gubler dg at doodle.com
Thu Mar 8 09:15:29 UTC 2012


Package: mysql-server-5.1
Version: 5.1.61-0+squeeze1
Severity: normal

On our servers, I have added "exit 0" at the top of /etc/mysql/debian-start (we've had trouble with checks running accidentially on our large myisam tables, and apparently that file is ment to be modified if necessary).

The result is that this file does not generate any output to stdout.

Now, /etc/init.d/mysql does the following on start (line 119-121):

# Now start mysqlcheck or whatever the admin wants.
output=$(/etc/mysql/debian-start)
[ -n "$output" ] && log_action_msg "$output"

Since this is the last (!) statement executed, it has a nasty side effect: The exit code of the test statement becomes the exit code of the whole script! Thus, if /etc/mysql/debian-start does not generate any output, /etc/init.d/mysql start exits with code 1. This is not a problem in normal operation (rebooting the server etc.), but it causes apt to fail whenever it needs to restart mysql due to an upgrade or similar.

I think the fix is trivial: Just add "exit 0" after line 121.

Thanks.

Best regards,

David Gubler

-- System Information:
Debian Release: 6.0.4
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages mysql-server-5.1 depends on:
ii  adduser     3.112+nmu2                   add and remove users and groups
ii  debconf [de 1.5.36.1                     Debian configuration management sy
ii  libc6       2.11.3-2                     Embedded GNU C Library: Shared lib
ii  libdbi-perl 1.612-1                      Perl Database Interface (DBI)
ii  libgcc1     1:4.4.5-8                    GCC support library
ii  libmysqlcli 5.1.61-0+squeeze1            MySQL database client library
ii  libstdc++6  4.4.5-8                      The GNU Standard C++ Library v3
ii  lsb-base    3.2-23.2squeeze1             Linux Standard Base 3.2 init scrip
ii  mysql-clien 5.1.61-0+squeeze1            MySQL database client binaries
ii  mysql-commo 5.1.61-0+squeeze1            MySQL database common files, e.g. 
ii  mysql-serve 5.1.61-0+squeeze1            MySQL database server binaries
ii  passwd      1:4.1.4.2+svn3283-2+squeeze1 change and administer password and
ii  perl        5.10.1-17squeeze3            Larry Wall's Practical Extraction 
ii  psmisc      22.11-1                      utilities that use the proc file s
ii  zlib1g      1:1.2.3.4.dfsg-3             compression library - runtime

Versions of packages mysql-server-5.1 recommends:
ii  bsd-mailx [mailx]  8.1.2-0.20100314cvs-1 simple mail user agent
ii  libhtml-template-p 2.9-2                 module for using HTML Templates wi
ii  mailx              1:20071201-3          Transitional package for mailx ren

Versions of packages mysql-server-5.1 suggests:
pn  tinyca                        <none>     (no description available)

-- Configuration Files:
/etc/mysql/debian-start changed:
echo "debian-start: not doing anything"
exit 0
source /usr/share/mysql/debian-start.inc.sh
MYSQL="/usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf"
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
MYUPGRADE="/usr/bin/mysql_upgrade --defaults-extra-file=/etc/mysql/debian.cnf"
MYCHECK="/usr/bin/mysqlcheck --defaults-file=/etc/mysql/debian.cnf"
MYCHECK_SUBJECT="WARNING: mysqlcheck has found corrupt tables"
MYCHECK_PARAMS="--all-databases --fast --silent"
MYCHECK_RCPT="root"
echo "Checking for corrupt, not cleanly closed and upgrade needing tables."
(
  upgrade_system_tables_if_necessary;
  check_root_accounts;
  check_for_crashed_tables;
) >&2 &
exit 0


-- debconf information excluded





More information about the pkg-mysql-maint mailing list