[Bug 326768] Re: mysqld_safe thinks mysqld has crashed when it hasn't
Mario Limonciello
superm1 at ubuntu.com
Tue May 5 19:40:56 BST 2009
** Description changed:
- Binary package hint: mysql-server-5.0
+ --Impact--
+ I'm running mythtv on jaunty with mysql-server-5.0 version 5.1.30really5.0.75-0ubuntu5. During boot mysql starts, then mythtv starts, then mysql restarts and mythtv gets confused.
- I'm running mythtv on jaunty with mysql-server-5.0 version
- 5.1.30really5.0.75-0ubuntu5. During boot mysql starts, then mythtv
- starts, then mysql restarts and mythtv gets confused.
+ This is caused by some portions of a debian patch that is applied on top
+ of MySQL. It has not been accepted yet at upstream MySQL. The MySQL
+ server is receiving a SIGHUP which the behavior is changed because of
+ the debian patch.
- What seems to be happening is that line 387 (or 389?) of
- /usr/bin/mysqld_safe is falling through when it shouldn't. mysqld_safe
- is a script that starts mysqld and restarts it if it crashes. Here are
- some relevant syslog sections:
+ Here are some relevant syslog sections:
Feb 8 12:35:07 willvo mysqld_safe[3668]: started
Feb 8 12:35:08 willvo mysqld[3671]: 090208 12:35:08 InnoDB: Started; log sequence number 0 43655
Feb 8 12:35:08 willvo mysqld[3671]: 090208 12:35:08 [Note] /usr/sbin/mysqld: ready for connections.
Feb 8 12:35:08 willvo mysqld[3671]: Version: '5.0.75-0ubuntu5' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)
Feb 8 12:35:08 willvo /etc/mysql/debian-start[3710]: Upgrading MySQL tables if necessary.
Feb 8 12:35:08 willvo /etc/mysql/debian-start[3713]: Looking for 'mysql' as: /usr/bin/mysql
Feb 8 12:35:08 willvo /etc/mysql/debian-start[3713]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Feb 8 12:35:08 willvo /etc/mysql/debian-start[3713]: This installation of MySQL is already upgraded to 5.0.75, use --force if you still need to run mysql_upgrade
Feb 8 12:35:08 willvo /etc/mysql/debian-start[3720]: Checking for insecure root accounts.
Feb 8 12:35:08 willvo /etc/mysql/debian-start[3724]: Triggering myisam-recover for all MyISAM tables
Feb 8 12:35:13 willvo mythtv-backend[4560]: Started mythtv-backend
Feb 8 12:35:16 willvo mysqld_safe[5212]: Number of processes running now: 1
Feb 8 12:35:16 willvo mysqld_safe[5223]: mysqld process hanging, pid 3670 - killed
Feb 8 12:35:16 willvo mysqld_safe[5227]: restarted
Feb 8 12:35:16 willvo mysqld[5231]: 090208 12:35:16 InnoDB: Started; log sequence number 0 43655
Feb 8 12:35:17 willvo mysqld[5231]: 090208 12:35:17 [Note] /usr/sbin/mysqld: ready for connections.
Feb 8 12:35:17 willvo mysqld[5231]: Version: '5.0.75-0ubuntu5' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)
Note that mysqld_safe is finds one mysqld process still running after it
is supposed to have crashed. mysqld_safe then kills that process and
starts another. This only seems to happen once during boot - it doesn't
keep restarting mysqld in normal use.
- The problem is somewhat intermittent. I made it go away once before by
- mysqlrepairing my tables, but they seem fine now. Debian bug 418648
- looks somewhat similar but slightly different (and the fix they used
- doesn't work for me).
+ --Addressing--
+ This has *not* yet been addressed in the karmic branch, but it has been verified that a PPA resolve the problem. MySQL hasn't changed yet in karmic, so this can easily be brought to karmic if viewed to properly solve the problem.
- My current fix is to replace:
+ --Test Case--
+ To reproduce this, you can boot up off of a fresh install of Mythbuntu 9.04 (which includes MySQL and mythtv-backend preinstalled). Check /var/log/syslog and you will see errors regarding mysql getting restarted because of a hanging process. Depending on the speed of your system, this may or may not cause problems with mythtv-backend because of the race condition inherent in this problem.
- $NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --d
- atadir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-external-locking 2>&1 |
- $ERR_LOGGER -t mysqld & wait
-
- with:
-
- $NOHUP_NICENESS $ledir/$MYSQLD $defaults --basedir=$MY_BASEDIR_VERSION --dat
- adir=$DATADIR $USER_OPTION --pid-file=$pid_file --skip-external-locking 2>&1 | $
- ERR_LOGGER -t mysqld
-
- in the mysqld_safe script (the second line has " & wait" removed from
- the end). This seems to fix the problem. I don't understand the
- difference in semantics between " & wait" and normal process
- termination.
-
- Will
+ --Regression Potential--
+ This type of patch has implications if users were dependent on the behavior of this debian/ubuntu specific patch to issue a mysql refresh via a SIGHUP.
** Changed in: mythbuntu
Status: Confirmed => Triaged
** Changed in: mythbuntu
Milestone: jaunty-rc => None
--
mysqld_safe thinks mysqld has crashed when it hasn't
https://bugs.launchpad.net/bugs/326768
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to mysql-dfsg-5.0 in ubuntu.
More information about the Ubuntu-server-bugs
mailing list