Slave replication fails on master upgrade 'InnoDB does not support system tables'

Bug #1600056 reported by mig5
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Status tracked in 5.7
5.5
Fix Released
High
Laurynas Biveinis
5.6
Fix Released
High
Laurynas Biveinis
5.7
Invalid
Undecided
Unassigned

Bug Description

Hi,

Upgrading servers from 5.5.48-rel37.8-1.wheezy to 5.5.49-rel37.9-1 on Debian Wheezy.

2-node master-master setup (slaves of each other).

Upgraded secondary master. Replication broke on the primary master as per known bug, which is fine: https://bugs.launchpad.net/percona-server/+bug/1065841

Fixed and then upgraded primary master. This time replication broke on the secondary master, with a new error I've not seen before (didn't happen when upgrading the secondary master):

160708 0:43:49 [ERROR] Slave SQL: Error 'Storage engine 'InnoDB' does not support system tables. [mysql.servers]' on query. Default database: 'mysql'. Query: 'CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host char(64) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(64) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner char(64) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table'', Error_code: 1726

160708 0:43:49 [Warning] Slave: Storage engine 'InnoDB' does not support system tables. [mysql.servers] Error_code: 1726

160708 0:43:49 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.001200' position 7180

I had to skip this statement, and *then* the usual one about 'You cannot 'ALTER' a log table if logging is enabled'

Why would this have affected only the second master?

Tags: regression
Revision history for this message
mig5 (mig5) wrote :

I also confirm that the 'system' table exists on both servers, storage engine MyISAM.

Revision history for this message
mig5 (mig5) wrote :

This is in mysqlbinlog:

CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host char(64) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(64) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner char(64) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table'

Perhaps this should have engine=MyISAM, as it does for the 'func' and 'user' tables? But it's still not clear to me why it didn't happen on the other master when replicating the binlogs from its master.

Revision history for this message
mig5 (mig5) wrote :

Happened again today, on upgrade to 5.5.50-38.0, on a *different* pair of multi-master servers running Debian Wheezy. The secondary master was patched first, the primary master's slave replication broke because of the above arriving to the replication logs.

Seems new as of 5.5.49-rel37.9-1 - we have been running these clusters for several years now, and patching them in exactly the same process. First time this error has occurred.

Revision history for this message
Roel Van de Paar (roel11) wrote :
Revision history for this message
mig5 (mig5) wrote :

I made a pull request which might 'fix' the issue (the 'system' table is the only one in the script that doesn't explicitly set engine=MyISAM)

https://github.com/percona/percona-server/pull/998

tags: added: regression
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-3481

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.