[MDEV-3525] LP:903798 - slave-skip-errors ignored in RBR mode. Created: 2011-12-13  Updated: 2014-12-05  Resolved: 2012-10-04

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Trivial
Reporter: Alexey Zilber (Inactive) Assignee: Kristian Nielsen
Resolution: Won't Fix Votes: 0
Labels: Launchpad

Attachments: XML File LPexportBug903798.xml    

 Description   

This looks like a bug that was fixed in Mysql 5.1.35. I just hit it in MariaDB 5.2.10.

I'm experiencing identical behavior to the bug filed here: http://bugs.mysql.com/bug.php?id=39393

To replicate the error, I have 1 master, and 1 slave.

All servers have binlog_format = MIXED and slave-skip-errors=all

On slave 1, drop a database. Slave 1 will report:

Last_SQL_Errno: 1146
Last_SQL_Error: Error 'Table '......' doesn't exist' on opening tables

-Alex



 Comments   
Comment by Elena Stepanova [ 2011-12-14 ]

Re: slave-skip-errors ignored in RBR mode.
Error 'Table .. does not exist' suggests that you are trying a slightly different scenario comparing to the one you described in the original bug. There was no CREATE TABLE hidden from slave, only DML (DELETE).

I am trying the scenario that you and Sveta described in the MySQL bug, and it works all right for me, both on MariaDB 5.2.10 and MySQL 5.1.60. However, a slightly different one, which involves DDL, fails, also both on MariaDB and MySQL, with the exact error that you mentioned. Something like this:

SET binlog_format='row';
SET SQL_LOG_BIN=0;
CREATE TABLE t ( i INT );
INSERT INTO t VALUES (1);
SET SQL_LOG_BIN=1;
DELETE FROM t;

  1. check slave status, observe error 1146 and slave SQL thread not running.

Could you please confirm that's what you encountered?

I suppose this flow has never been fixed, or possibly was broken again. I It fails on MySQL 5.1.60 and 5.1.57, but I don't have older versions to check.

Comment by Elena Stepanova [ 2012-01-12 ]

Re: slave-skip-errors ignored in RBR mode.

  1. MTR test case:
  1. Run with -mysqld=-slave-skip-errors=all
  2. or -mysqld=-slave-skip-error=1146.
  3. Please note that variations of the flow
  4. that cause error 1032 instead of 1146
  5. work all right.

--source include/master-slave.inc

SET binlog_format='row';
SET SQL_LOG_BIN=0;

CREATE TABLE t ( i INT );

SET SQL_LOG_BIN=1;
INSERT INTO t VALUES (1);

--sync_slave_with_master

  1. End of test case
Comment by Elena Stepanova [ 2012-01-12 ]

Re: slave-skip-errors ignored in RBR mode.
Reproducible in 5.1, 5.2, 5.3, 5.5.

Assigning to Monty to decide whether it is to be fixed in MariaDB (any of the versions) or filed for MySQL.

Comment by Kristian Nielsen [ 2012-04-02 ]

Re: slave-skip-errors ignored in RBR mode.
This seems to be an upstream (MySQL) bug.

Unfortunately, this is not a priority for me to work on at the moment.

When MySQL will fix it, we will merge the patch.

Or if someone else makes a patch, I would be happy to review + apply.

Comment by Rasmus Johansson (Inactive) [ 2012-04-02 ]

Launchpad bug id: 903798

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