slave-skip-errors ignored in RBR mode.

Bug #903798 reported by Alexey Zilber
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

Revision history for this message
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
Revision history for this message
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

Revision history for this message
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)
tags: added: replication upstream
Michael Widenius (monty)
Changed in maria:
assignee: Michael Widenius (monty) → Kristian Nielsen (knielsen)
importance: Undecided → Medium
Revision history for this message
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
Revision history for this message
林晓斌 (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.
        */

Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.