slave-skip-errors ignored in RBR mode.

Bug #903798 reported by Alexey Zilber on 2011-12-13
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MariaDB
Won't Fix
Low
Kristian Nielsen

Bug 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

Elena Stepanova (elenst) wrote :

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;

# 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.

Changed in maria:
status: New → Incomplete
Elena Stepanova (elenst) wrote :

# MTR test case:

# Run with --mysqld=--slave-skip-errors=all
# or --mysqld=--slave-skip-error=1146.
# Please note that variations of the flow
# that cause error 1032 instead of 1146
# 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

# End of test case

Elena Stepanova (elenst) wrote :

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.

Changed in maria:
status: Incomplete → Confirmed
milestone: none → 5.1
assignee: nobody → Michael Widenius (monty)
Elena Stepanova (elenst) on 2012-03-29
tags: added: replication upstream
Michael Widenius (monty) on 2012-04-02
Changed in maria:
assignee: Michael Widenius (monty) → Kristian Nielsen (knielsen)
importance: Undecided → Medium
Kristian Nielsen (knielsen) wrote :

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.

Changed in maria:
importance: Medium → Low
milestone: 5.1 → 5.5
status: Confirmed → Won't Fix
林晓斌 (dingqi-lxb) wrote :

I don't think it is a bug. The comments in log_event.cc shows that it is for designed.

        /*
          Error reporting borrowed from Query_log_event with many excessive
          simplifications.
          We should not honour --slave-skip-errors at this point as we are
          having severe errors which should not be skiped.
        */

Alexey Zilber (alexeyzilber) wrote :

I disagree, the comments just say it's buggy. What are these "severe errors"? This should be bug fixed along with the severe errors.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers