MySQL replication compatibility is broken in 5.5
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MySQL patches by Codership |
Fix Released
|
High
|
Seppo Jaakola | ||
5.5 |
Fix Released
|
High
|
Seppo Jaakola |
Bug Description
When we set-up Galera as a Slave to a normal MySQL Master the Galera node acting as a Slave does core dumps.
111031 21:13:35 [Note] Slave SQL thread initialized, starting replication in log 'bin-log.000002' at position 107, relay log './galera1-
111031 21:15:25 [Warning] IP address '192.168.56.105' could not be resolved: Name or service not known
111031 21:15:29 - mysqld got signal 11 ;
Thread pointer: 0xd779040
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x49da50e8 thread_stack 0x40000
/home/mysql/
/home/mysql/
/lib64/
/home/mysql/
/home/mysql/
/home/mysql/
/home/mysql/
/home/mysql/
/home/mysql/
/home/mysql/
/home/mysql/
/home/mysql/
/lib64/
/lib64/
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0xd71a349): /*!40000 ALTER TABLE `test` DISABLE KEYS */
Connection ID (thread ID): 2
Status: NOT_KILLED
Then this node crashes continuously...
This issue happened when loading a mysql dump file on the MySQL master node
Two issues were detected when debugging this:
A). non-effective DDL causes a crash in Galera slave. In this test the:
ALTER TABLE `test` DISABLE KEYS, was the offending query
B). if log-slave-updates has not been set on Galera slave node, all replicated MySQL transactions are skipped
Howto reproduce case A:
1. setup two Galera nodes but with Galera replication disabled. Instead configure MySQL replication between this pair
2. issue in the master node:
mysql> CREATE TABLE test.t(i int);
mysql> ALTER TABLE test.t DISABLE KEYS;
3. Slave node should crash while applying
Howto reproduce case B:
1. use same node pair as in case A
2. in slave configuration make sure log_bin and log_slave_updates are not set
3. issue in the master node:
mysql> CREATE TABLE test.t(i int);
mysql> INSERT INTO t values (1);;
4. check out test.t in slave node, it will be empty