Bug #11239 Partial master update of row that does not exist on slave breaks replication
Submitted: 10 Jun 2005 11:48 Modified: 14 Jun 2005 5:47
Reporter: Tomas Ulin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:5.1.0 custom release OS:Any (any)
Assigned to: Tomas Ulin CPU Architecture:Any

[10 Jun 2005 11:48] Tomas Ulin
Description:
Partial master update of row that does not exist on slave breaks cluster replication
if missing attribute is not-nullable

Breaks idempotency criteria of row-based replication

How to repeat:
master> CREATE TABLE t1 (c1 CHAR(15) not null, c2 CHAR(15), c3 INT, PRIMARY KEY (c3)) ENGINE = NDB ;
Query OK, 0 rows affected (0.58 sec)

master> INSERT INTO t1 VALUES ("row1","will go away",1);
Query OK, 1 row affected (0.01 sec)

master> INSERT INTO t1 VALUES ("row2","will go away",2),("row3","will change",3),("row4","D",4);
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

slave> DELETE FROM t1 WHERE c3 = 2;
Query OK, 1 row affected (0.01 sec)

master> UPDATE t1 SET c2="should go away" WHERE c3 = 2;
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0

replication stops...

T@180236: | info: has warning 1296 Got error 839 'Illegal null attribute' from NDB

Suggested fix:
Implement ignore error support in ndb handler
[13 Jun 2005 17: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/internals/25943
[14 Jun 2005 5:47] Tomas Ulin
not to document