Bug #63882 Upgrade from 5.6.2 to 5.6.4 Fails - Table slave_master_info cannot be opened
Submitted: 30 Dec 2011 16:48 Modified: 14 Jan 2012 10:04
Reporter: Chris Calender Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.6.2 to 5.6.4 OS:Windows
Assigned to: CPU Architecture:Any
Tags: 5.6.2, 5.6.4, slave_master_info, upgrade

[30 Dec 2011 16:48] Chris Calender
Description:
A direct upgrade from 5.6.3 to 5.6.4 (replacing all files except datadir) leads to the following error:

111230 11:16:37 [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.
111230 11:16:37 [ERROR] Error creating master info: Error while checking replication metadata. This might also happen when doing a live upgrade from a version that did not make use of the replication metadata tables. If that was the case, consider starting the server with the option --skip-slave-start which causes the server to bypass the replication metadata tables check while it is starting up.
111230 11:16:37 [ERROR] Aborting

I then add "skip-slave-start" to my config file (per the error message), and I receive the same error:

111230 11:21:24 [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.
111230 11:21:24 [ERROR] Error creating master info: Error while checking replication metadata. This might also happen when doing a live upgrade from a version that did not make use of the replication metadata tables. If that was the case, consider starting the server with the option --skip-slave-start which causes the server to bypass the replication metadata tables check while it is starting up.
111230 11:21:24 [ERROR] Aborting

So perhaps there are 2-3 bugs in 1 here (1. the upgrade fails and 2. skip-slave-start does not work as expected and 3. the error log message may need adjusted).

Note: One cannot run mysql_upgrade, as the server won't start.

Workaround: I replaced the 6 mysql.slave_* files from $datadir/mysql/ (of the 5.6.3 instance) with the 9 mysql.slave_* files from a fresh 5.6.4 "no-install" download.  Then I could start the instance.

(I'm not sure if just copying slave_master_info or just the new slave_worker_info files would have worked.  I just tried all 3 slave* tables - slave_master_info, slave_relay_log_info, slave_worker_info - to start with, and it worked.)

How to repeat:
Install 5.6.3.

Upgrade in-place to 5.6.4, but keep old datadir from 5.6.3.

Restart instance.

It should fail with:

111230 11:16:37 [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.
111230 11:16:37 [ERROR] Error creating master info: Error while checking replication metadata. This might also happen when doing a live upgrade from a version that did not make use of the replication metadata tables. If that was the case, consider starting the server with the option --skip-slave-start which causes the server to bypass the replication metadata tables check while it is starting up.
111230 11:16:37 [ERROR] Aborting

Suggested fix:
N/A
[30 Dec 2011 18:44] Peter Laursen
I wonder: did you run mysql_upgrade? It works fine for me (but my table is empty - anyway I can SELECT * without getting an error).

Peter
(not a MySQL person).
[30 Dec 2011 18:51] Chris Calender
mysql_upgrade won't run since mysqld isn't running.
[30 Dec 2011 18:56] Chris Calender
Changed OS to "Windows", as that is what I tested it on.

5.6.3 was installed with the installer (32-bit).

And I upgraded to 5.6.4 replacing existing 5.6.3 files (except datadir) with the 5.6.4 "no-install" files.
[1 Jan 2012 4:06] MySQL Verification Team
I couldn't repeat on Windows 7 64-bit:

Installed 5.6.3 and created a database with a table so it will preserved with the upgrade with version 5.6.4:

Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.3-m6 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database d6;
Query OK, 1 row affected (0.00 sec)

mysql> use d6
Database changed
mysql> create table t6 (id serial);
Query OK, 0 rows affected (0.07 sec)

mysql>

Installed the version 5.6.4 selecting the upgrade step with the installer:

Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.4-m7 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| d6                 |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> use d6
Database changed
mysql> show tables;
+--------------+
| Tables_in_d6 |
+--------------+
| t6           |
+--------------+
1 row in set (0.00 sec)

mysql>

The data was preserved.

Please check complementary instructions in the how to repeat section so we can repeat the issue. Thanks in advance.
[3 Jan 2012 18:05] Chris Calender
Hi Miguel,

Sorry about that .. I realize what I did wrong now.

What is failing is an upgrade from 5.6.2 to 5.6.4.

My initial case had originally been a 5.6.2 instance that was upgraded to 5.6.3 first (without running mysql_upgrade).  And then I upgraded that 5.6.3 instance to 5.6.4.

So, I just re-tested a direct upgrade from 5.6.2 to 5.6.4 and it initially fails with (using windows 32-bit no-install versions):

120103 12:34:20 [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.
120103 12:34:20 [ERROR] Error creating master info: Error while checking replication metadata. This might also happen when doing a live upgrade from a version that did not make use of the replication metadata tables. If that was the case, consider starting the server with the option --skip-slave-start which causes the server to bypass the replication metadata tables check while it is starting up.
120103 12:34:20 [ERROR] Aborting

However, if I subsequently add "skip-slave-start" to the my.ini file, and start mysqld, it starts up fine (logging warnings and errors about the mysql.* tables).  (And then of course I can run mysql_upgrade correctly too.)

So, all in all, the error occurs from 5.6.2 to 5.6.4.  But, since "skip-slave-start" worked fine in my most recent test, this entire bug could be considered "expected behavior", and thus not a bug at all.

(Fwiw, I did update the synopsis and version for anyone out there searching the bugs db for this issue.)
[14 Jan 2012 10:04] Sveta Smirnova
Thank you for the feedback.

Closing as "Not a Bug" because last comment and the fact that upgrade 5.6.2->5.6.3 and 5.6.3->5.6.4 work
[8 May 2012 16:16] Franjo Markovic
I just got the same error when trying to upgrade from 5.6.4 to 5.6.5 on windows. Adding skip-slave-start to my.ini did not help.
[8 May 2012 16:45] Franjo Markovic
I had to manually copy all 3 slave_* tables into data/mysql folder to be able to finally start the instance
[12 Jun 2012 6:39] Russell Levy
I have the same problem on Linux upgrading from 5.6.4 to 5.6.5. skip_slave_start in my.cnf allows me to start up, but running mysql_upgrade does not fix the problem -- if I remove skip_slave_start and restart, I get the error message again.