[debian-mysql] Bug#512040: conditional (re-)start of mysqld in postinst script

Raoul Bhatia [IPAX] r.bhatia at ipax.at
Fri Jan 16 17:09:59 UTC 2009


Package: mysql-server-5.0
Version: 5.0.51a-21

Installing/upgrading the package follows this steps:

1) preinst will stop the server
2) upgrade takes place
3) postinst will start the server

unfortunatly, in a more complex environment where one does not rely on
/etc/mysql/* for configuration (e.g. in an linux-ha/pacemaker
environment), the start is likely to fail thus leaving the package - and
thus the whole package system - in the "Failed-cfg"-state:

> Setting up mysql-client-5.0 (5.0.51a-19~bpo40+1) ...
> Setting up mysql-server-5.0 (5.0.51a-19~bpo40+1) ...
> Installing new version of config file /etc/init.d/mysql-ndb-mgm ...
> Installing new version of config file /etc/init.d/mysql-ndb ...
> Installing new version of config file /etc/init.d/mysql ...
> Installing new version of config file /etc/logrotate.d/mysql-server ...
> Installing new version of config file /etc/mysql/debian-start ...
> Stopping MySQL database server: mysqld.
> Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
> invoke-rc.d: initscript mysql, action "start" failed.
> dpkg: error processing mysql-server-5.0 (--configure):
>  subprocess post-installation script returned error exit status 1
> Errors were encountered while processing:
>  mysql-server-5.0
> E: Sub-process /usr/bin/dpkg returned an error code (1)

> # dpkg -l mysql-server-5.0
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
> |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
> ||/ Name                                          Version                    
> +++-===================-====================-================================
> iF  mysql-server-5.0    5.0.51a-19~bpo40+1   MySQL database server binaries

Now, we're unable to install/upgrade any other package properly, as
postinst will *always* try to start the server.

The only workaround i found until now is using "chmod -x /etc/init.d/mysql".

Is it possible to make the mysqld start optional - e.g. preinst checks
if mysqld is/was running and "tell" postinst what to (not) start?

Or maybe it is possilbe to continue even if the mysqld start fails?

cheers,
raoul





More information about the pkg-mysql-maint mailing list