Bug #13420 row bases replication, dbug assertion if row is not found on slave side
Submitted: 23 Sep 2005 5:39 Modified: 7 Nov 2005 15:34
Reporter: Tomas Ulin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Row Based Replication ( RBR ) Severity:S3 (Non-critical)
Version:5.1-wl2325, 5.0-wl1012? OS:Any
Assigned to: Mats Kindahl CPU Architecture:Any

[23 Sep 2005 5:39] Tomas Ulin
Description:
050923 10:31:06 [ERROR] Slave: Error in Update_rows event: row application failed, Error_code: 137
050923 10:31:06 [ERROR] Slave: Error in Update_rows event: error during transaction execution on table test.t1, Error_code: 137
mysqld: sql_base.cc:549: bool close_thread_table(THD*, TABLE**): Assertion `table->file->inited == handler::NONE' failed.

How to repeat:

master:

create table t1 (a int,b int);
insert into t1 values (1,1);

slave:

start slave;
delete from t1;

master:

update t1 set a=1 where b=1;

slave:

--> assertion
[24 Sep 2005 5:09] MySQL Verification Team
I was unable for to repeat with latest 5.0 server:

ChangeSet@1.1997.1.7, 2005-09-23 16:00:48-05:00, paul@kite-hub.kitebird.com
Merge kite-hub.kitebird.com:/src/extern/MySQL/bk/mysql-4.1
into  kite-hub.kitebird.com:/src/extern/MySQL/bk/mysql-5.0

Could you please can you point me, what I did different or you are still able for to
repeat with latest BK source. Thanks in advance.

miguel@hegel:~/dbs/5.0> bin/mysql --defaults-file=/home/miguel/dbs/5.0/var/my.cnf -uroot --prompt="master>"
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.14-rc-debug-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

master>show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |       98 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

master>grant all on *.* to "miguel"@"localhost" identified by "slavetest";
Query OK, 0 rows affected (0.00 sec)

master>show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      223 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

master>create database db1;
Query OK, 1 row affected (0.00 sec)

master>use db1;
Database changed
master>create table t1 (a int,b int);
Query OK, 0 rows affected (0.05 sec)

master>insert into t1 values (1,1);
Query OK, 1 row affected (0.00 sec)

master>update t1 set a=1 where b=1;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

+------+------+
| a    | b    |
+------+------+
|    1 |    1 |
+------+------+
1 row in set (0.00 sec)

master>

miguel@hegel:~/dbs/5.0slave> bin/mysql --defaults-file=/home/miguel/dbs/5.0slave/var/my.cnf -uroot --prompt="slave>"
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.14-rc-debug

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

slave>CHANGE MASTER TO
    -> MASTER_HOST='localhost',
    -> MASTER_USER='miguel',
    -> MASTER_PASSWORD='slavetest',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=223;
Query OK, 0 rows affected (0.20 sec)

slave>start slave;
Query OK, 0 rows affected (0.01 sec)

slave>use db1;
Database changed

slave>delete from t1;
Query OK, 1 row affected (0.00 sec)

slave>show slave status\G
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: localhost
                Master_User: miguel
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000001
        Read_Master_Log_Pos: 573
             Relay_Log_File: hegel-relay-bin.000002
              Relay_Log_Pos: 585
      Relay_Master_Log_File: mysql-bin.000001
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB: 
        Replicate_Ignore_DB: 
         Replicate_Do_Table: 
     Replicate_Ignore_Table: 
    Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table: 
                 Last_Errno: 0
                 Last_Error: 
               Skip_Counter: 0
        Exec_Master_Log_Pos: 573
            Relay_Log_Space: 585
            Until_Condition: None
             Until_Log_File: 
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File: 
         Master_SSL_CA_Path: 
            Master_SSL_Cert: 
          Master_SSL_Cipher: 
             Master_SSL_Key: 
      Seconds_Behind_Master: 0
1 row in set (0.00 sec)

slave>select * from t1;
Empty set (0.00 sec)

slave>
[24 Sep 2005 5:31] Tomas Ulin
I'll just assign this to Jonathan so he can look at it.

The error occurs in a clone which is under development, not the regular 5.0/5.1