[debian-mysql] Bug#790249: mysql-server: Upgrade 5.5 to 5.6 fails

Bob Proulx bob at proulx.com
Tue Jun 30 07:58:16 UTC 2015


I have debugged the problem to root cause.  In the postinst script it
calls:

	invoke-rc.d mysql start || exit $?

Running this manually:

  # service mysql start
  Starting MySQL database server: mysqld ..
  # echo $?
  1

Tracing the script, it's a bash script, yields:

  bash -x /etc/init.d/mysql start
  ...
  + log_end_msg_post 0
  + :
  + return 0
  ++ /etc/mysql/debian-start
  + output=
  + '[' -n '' ']'

Which corresponds to this section of the init.d script.

	    if mysqld_status check_alive warn; then
                log_end_msg 0
	        # Now start mysqlcheck or whatever the admin wants.
	        output=$(/etc/mysql/debian-start)
		[ -n "$output" ] && log_action_msg "$output"
	    else

Which then falls off the bottom of the script.  Since the exit code of
the last command run is non-zero (the [ -n "$output" ] has no output)
it causes the exit code of the script to be non-zero too.

This is a deja-bug as I have debugged this before:

  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=739846

Unfortunately I failed to realize that the exit 0 was a local change I
had put in to fix this problem previously.  Making it a confusing bug
report.  And unfortunately having fixed the problem for myself I
didn't follow up on it.  My bad.

But the problem is exactly the same.  The script needs to exit 0 at
the end.  At all points when there is an error it exits non-zero.
That is all okay.  But that means that when the script exits normally
it should definitely exit 0.  Note that the previous versions of the
/etc/init.d/skeleton script included a ":" at the end to clear the
exit code and basically do the same thing.

The simplest fix is to add an "exit 0" at the bottom of the script.

Bob
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-mysql-maint/attachments/20150630/f33fd5b1/attachment-0001.sig>


More information about the pkg-mysql-maint mailing list