Upgrade causes replication failure due to schema changes
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
MySQL Server |
Unknown
|
Unknown
|
||||
Percona Server moved to https://jira.percona.com/projects/PS | Status tracked in 5.7 | |||||
5.5 |
Invalid
|
Undecided
|
Unassigned | |||
5.6 |
Invalid
|
Undecided
|
Unassigned | |||
5.7 |
Triaged
|
High
|
Unassigned |
Bug Description
Caution with this release it will break replication due to a known upgrade issue in upstream MySQL.
Given the critical nature of the CVE reports addressed in this release we immediately tested the upgrade on a non-production server taking a feed from production and the replication died looking it lost the master information.
Upstream bug report: http://
For information we upgrade the server from 5.7.13-6-log to 5.7.14-8-log and ran MySQL upgrade everything passed.
2016-09-
2016-09-
2016-09-
2016-09-
2016-09-
2016-09-
2016-09-
There is a workaround on the bug report which does get replication flowing again if you are desperate.
tags: | added: upstream |
Further to this I have compared the MySQL schema for a server upgraded from a previous version I believe the server originated on 5.6 to a brand new install on 5.7.14 and there appear to be other changes to the replication tables although mySQL does not complain about them.
Below is a DB diff report
/*!40014 SET @OLD_FOREIGN_ KEY_CHECKS= @@FOREIGN_ KEY_CHECKS, FOREIGN_ KEY_CHECKS= 0 */;
USE `mysql`;
/* Alter table in target */ auto_position` ,
ALTER TABLE `slave_master_info`
CHANGE `Host` `Host` char(64) COLLATE utf8_bin NULL COMMENT 'The host name of the master.' after `Master_log_pos` ,
CHANGE `Channel_name` `Channel_name` char(64) COLLATE utf8_general_ci NOT NULL COMMENT 'The channel on which the slave is connected to a source. Used in Multisource Replication' after `Enabled_
CHANGE `Tls_version` `Tls_version` text COLLATE utf8_bin NULL COMMENT 'Tls version' after `Channel_name` ;
/* Alter table in target */ relay_log_ info`
ALTER TABLE `slave_
CHANGE `Channel_name` `Channel_name` char(64) COLLATE utf8_general_ci NOT NULL COMMENT 'The channel on which the slave is connected to a source. Used in Multisource Replication' after `Id` ;
/* Alter table in target */ group_bitmap` ; KEY_CHECKS= @OLD_FOREIGN_ KEY_CHECKS */;
ALTER TABLE `slave_worker_info`
CHANGE `Channel_name` `Channel_name` char(64) COLLATE utf8_general_ci NOT NULL COMMENT 'The channel on which the slave is connected to a source. Used in Multisource Replication' after `Checkpoint_
/*!40014 SET FOREIGN_