Bug #40586 Telco clones should have binlog-format=mixed as default
Submitted: 8 Nov 2008 4:08 Modified: 14 Apr 19:52
Reporter: Jonathan Miller
Status: Closed
Category:Server: ClusterRep Severity:S3 (Non-critical)
Version:mysql-5.1-telco-6.* OS:Linux
Assigned to: Jonathan Miller Target Version:
Triage: Triaged: D3 (Medium)

[8 Nov 2008 4: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 22: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 18: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 19:06] Tomas Ulin
fixed
[14 Nov 2008 19: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 19: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 19:51] Bernhard Ocklin
Re-opened as a reminder: add test case ensuring that MIXED is default.
[10 Apr 22: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 4: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 4: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)