[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