Bug #40586 Telco clones should have binlog-format=mixed as default
Submitted: 8 Nov 2008 3:08 Modified: 14 Apr 2009 17:52
Reporter: Jonathan Miller Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Replication Severity:S3 (Non-critical)
Version:mysql-5.1-telco-6.* OS:Linux
Assigned to: Jonathan Miller CPU Architecture:Any
Triage: Triaged: D3 (Medium)

[8 Nov 2008 3:08] Jonathan Miller
Description:
ACRT has been failing this week on all replication test that use the epoch from mysql.ndb_binlog_index to sync slave.

During loading a database such as TPC-B, the mysql.ndb_binlog_index never inserts a record nor updates along the way.

Check_Load -> Failed at Check_Load -> Failed! Master epoch !defined DBI::db=HASH(0x102588c0)->errstr

mysql> select count(*) from TPCB.account;
+----------+
| count(*) |
+----------+
|   100000 |
+----------+

mysql> SELECT MAX(epoch) FROM mysql.ndb_binlog_index;
+------------+
| MAX(epoch) |
+------------+
|       NULL |
+------------+
1 row in set (0.00 sec)

Slave:

 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes
 Exec_Master_Log_Pos: 34359386
 Relay_Log_Space: 34359688

mysql> SELECT * FROM mysql.ndb_apply_status;
+-----------+-------+------------------+-----------+----------+
| server_id | epoch | log_name         | start_pos | end_pos  |
+-----------+-------+------------------+-----------+----------+
|         1 |     0 | ndb18-bin.000001 |  34359120 | 34359386 |
+-----------+-------+------------------+-----------+----------+
1 row in set (0.00 sec)

Note: This is not happening on mysql-5.1-ndb

How to repeat:
 sh -x scripts/boot.sh --clone=mysql-5.1-telco-6.3 --CONF=/space/cluster_rep_auto/cr-autotest.conf --start-and-exit --leave-clone clst-rep

sh -x drivers/tpcb-rep-tester.sh  ./cr-autotest.conf
[12 Nov 2008 21:34] Jonathan Miller
Hi,

Seems that not too long ago the 5.1 tree was changed from mixed to statement. For telco this causes the MySQLD to act as a standalone replication meaning that mysql.ndb_binlog_index is not updated and the epoch on the slave mysql.ndb_apply_status stay 0.

We should have the default as mixed in the telco (CGE) version as 99.9% of the time customers will never run as statement.

We also need to ensure the behavior if "statement" is well documented in the cluster manual
[14 Nov 2008 17:50] Jon Stephens
Discussed with Jeb and Tomas; Tomas confirms that MIXED will remain the default in all Cluster NDB 6.x releases.

Updated docs accordingly, commit is here: http://lists.mysql.com/commits/58820
[14 Nov 2008 18:06] Tomas Ulin
fixed
[14 Nov 2008 18:18] Jon Stephens
Already addressed docs issues as per my previous comment.

Since this doesn't affect any release versions, no changelog entry is required.

Closed.
[14 Nov 2008 18:40] Jon Stephens
On second thought, a mention of this in the NDB changelogs is probably a good idea. Documented in the NDB-6.2.17 and NDB-6.3.19 changelogs as follows:

        *Important note* This release of MySQL Cluster derives in 
        part from MySQL 5.1.29, in which the default value for the 
        --binlog-format option changed to STATEMENT. That change 
        does *not* affect this or future MySQL Cluster NDB 6.x 
        releases, where the default value for this option remains
        MIXED, since MySQL Cluster Replication does not work with 
        the statement-based format.
[14 Nov 2008 18:51] Bernd Ocklin
Re-opened as a reminder: add test case ensuring that MIXED is default.
[10 Apr 2009 20:56] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/71874

2893 Jonathan.Miller@sun.com	2009-04-10
      A real simple test to ensure that "Mixed" stays default replication type for NDB per Bug#40586
      added:
        mysql-test/suite/rpl_ndb/r/rpl_ndb_check_for_mixed.result
        mysql-test/suite/rpl_ndb/t/rpl_ndb_check_for_mixed.test
[15 Apr 2009 2:38] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/72094

2899 Jonathan.Miller@sun.com	2009-04-15
      Correcting build break for when RBR is set as default replicaiton format. Original test was created for Bug#40586, but broke push-build when using ROW. This new version will except ROW as okay, but will fail if NDB RPL default is set to SBR. In short MBR && RBR == Okay, SBR == Failure
      modified:
        mysql-test/suite/rpl_ndb/r/rpl_ndb_check_for_mixed.result
        mysql-test/suite/rpl_ndb/t/rpl_ndb_check_for_mixed.test
[15 Apr 2009 2:39] Bugs System
Pushed into 5.1.32-ndb-7.0.6 (revid:jonathan.miller@sun.com-20090415023539-byms5zkfskea0a7f) (version source revid:jonathan.miller@sun.com-20090415023539-byms5zkfskea0a7f) (merge vers: 5.1.32-ndb-7.0.6) (pib:6)