Bug #68057 Cluster Replication to other storage engines (could be also to other clusters)
Submitted: 9 Jan 2013 11:54 Modified: 10 Jan 2013 9:31
Reporter: Keith Galea Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Cluster: Replication Severity:S1 (Critical)
Version:7.2.10 OS:Any
Assigned to: CPU Architecture:Any

[9 Jan 2013 11:54] Keith Galea
Description:
Hi All,

I found a bug when it comes to replicating from a cluster to InnoDB (it could be also for other storage engines including cluster)

When it comes to replication:
- CREATE SCHEMA - WORKS
- INSERT, UPDATE, DELETE - WORKS
- CREATE TABLE - DOES NOT WORK ALWAYS

let's say you have API1 and API2 and SLAVE is connected to API1

if you create table in API1, and execute SHOW BINLOG EVENTS in API2, the statement shows but in SHOW BINLOG EVENTS of API1 it does not, and the create table is not replicated either

if you create table in API2, and execute SHOW BINLOG EVENTS in API1, the statement shows but in SHOW BINLOG EVENTS of API2 it does not, but now the create table is replicated

How to repeat:
If the slave is set as binlog-format=ROW

try creating table from API1 and API2 and see the changes in the slave, and execute
SHOW BINLOG EVENTS

Suggested fix:
If the slave is set as binlog-format=MIXED

try creating table from API1 and API2 and see the changes in the slave
[9 Jan 2013 19:41] Umesh Shastry
Hello Keith,

Thank you for the report.

I'm unable to repeat the reported behavior and I suspect something is missing in your configurations/setup.

I just tried this on the reported version with a 6 node cluster setup(1 mgm, 2 storage and 3 api), used one of the api node which is running on port 100
as the master and instructed a standalone server(slave ) to connect and replicate.

Steps performed:

1. Setup a cluster(1 mgm, 2 storage and 3 api - API1-master, API2, API22) and one standalone mysqld instance(API3-slave and innodb as default engine)
2. Created a slave account on the master Cluster(API1) with the appropriate privileges
3. Configured the slave(API3-slave) to use the master(API1) and instructed slave to connect master and replicate
4. Created schema defect68057 and table t1_master - confirmed that new schema/table are replicated on other api nodes in cluster as well as in slave
   Also, created table t1_master_api2 on API2 and confirmed that new schema/table are replicated on other api nodes(including API1-master) in cluster as well as in slave
5. Added records to the newly created tables(table t1_master and table t1_master_api2) and it is also replicated and show bin log events confirms this
  
Could you please check and confirm this at your end too? Could you please attach the cluster logs? Preferably using the ndb_error_reporter utility:

  http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-programs-ndb-error-reporter.html

Also, the mysql config details and steps used for setting up cluster.

MySQL Cluster replication requirements are explained here - http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-replication-general.html
[10 Jan 2013 4:59] Umesh Shastry
Activity log and API config file(s)

Attachment: ActivitylogsConfigFiles.tar (application/x-tar, text), 32.50 KiB.

[10 Jan 2013 9:09] Keith Galea
would you be able to send the configuration you used that worked with binlog-format=ROW on the slave?
[10 Jan 2013 9:13] Umesh Shastry
Please check the conf details in uploaded file "ActivitylogsConfigFiles.tar"

Slave config details are under the group..

::::::::::::::
my3308.cnf   -- API3-Slave
::::::::::::::
[10 Jan 2013 9:26] Keith Galea
It is now working when I re-tested with binlog_format=ROW.
Must have been that I had a node not restarted with a config change.
You can close the ticket.
Thanks.
[10 Jan 2013 9:26] Keith Galea
closing ticket.
[10 Jan 2013 9:31] Umesh Shastry
Thank you for confirming..

Regards,
Umesh