[MDEV-4813] Replication fails on updating a MEMORY table with an index using btree Created: 2013-07-24  Updated: 2014-10-07  Resolved: 2014-10-07

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - Memory
Affects Version/s: 10.0.3, 5.5.32, 5.1.67, 5.2.14, 5.3.12
Fix Version/s: 5.5.40, 10.0.15

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: upstream

Issue Links:
Relates

 Description   

Test case:

--source include/master-slave.inc
--source include/have_binlog_format_row.inc
 
CREATE TABLE t1 (f1 VARCHAR(128), f2 VARCHAR(128), KEY (f2,f1) USING BTREE) ENGINE=MEMORY;
INSERT INTO t1 VALUES (NULL,'not'),('one',NULL),('two',NULL),('three','');
 
UPDATE t1 SET f2 = 'new';
 
--sync_slave_with_master

Last_Error	Could not execute Update_rows event on table test.t1; Can't find record in 't1', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log master-bin.000001, end_log_pos 694

It's an upstream bug, but it's not reproducible in MySQL 5.6 (5.6.5, 5.6.12), while still reproducible in MariaDB 10.0.4 candidate.
I filed it at bugs.mysql.com, although I don't have much hope that it will be fixed, given that it's not reproducible in 5.6.



 Comments   
Comment by Elena Stepanova [ 2013-08-07 ]

Since we aren't planning to merge replication changes from MySQL 5.6, we might want to consider fixing it separately.

Comment by Patryk Pomykalski [ 2013-08-24 ]

This bug is not related to replication:

CREATE TABLE t1 (f1 VARCHAR(128), f2 VARCHAR(128), KEY (f2,f1) USING BTREE) ENGINE=MEMORY;
INSERT INTO t1 VALUES (NULL,'not'), ('one',NULL),('two',NULL),('three','');
SELECT * FROM t1 WHERE f1 = 'one'  and f2 IS NULL;

It was fixed in mysql 5.6 in revision: http://bazaar.launchpad.net/~mysql/mysql-server/5.6/revision/2876.449.1

Generated at Thu Feb 08 06:59:22 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.