Skip to content

Commit

Permalink
MDEV-31651 : Assertion wsrep_thd_is_applying(thd) && !wsrep_thd_is_lo…
Browse files Browse the repository at this point in the history
…cal_toi(thd) in wsrep_ignored_error_code

Problem was that with BINLOG-statement you can execute
binlog events on master also (not only in applier).
Fix removes too strict part wsrep_thd_is_applying from
assertion. Note that actual event in test is intentionally
corrupted to test should this error being ignored.

Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
  • Loading branch information
janlindstrom authored and sysprg committed Sep 26, 2023
1 parent 8a5a07f commit f5c3e73
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
11 changes: 11 additions & 0 deletions mysql-test/suite/galera/r/mdev-31651.result
@@ -0,0 +1,11 @@
connection node_2;
connection node_1;
call mtr.add_suppression("BINLOG_BASE64_EVENT: Could not read field.*");
call mtr.add_suppression("BINLOG_BASE64_EVENT: Could not execute Write_rows_v1 event on table.*");
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b INT, KEY(b)) engine=innodb;
BINLOG 'AMqaOw8BAAAAdAAAAHgAAAAAAAQANS42LjM0LTc5LjEtZGVidWctbG9nAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAYVx w2w=';
BINLOG 'wlZOTxMBAAAAKgAAADwCAAAAACkAAAAAAAEABHRlc3QAAnQxAAIDAwAC wlZOTxcBAAAAJgAAAGICAAAAACkAAAAAAAEAAv/8AgAAAAgAAAA=';
ERROR HY000: Got error 171 "The event was corrupt, leading to illegal data being read" from storage engine InnoDB
SELECT * FROM t1;
a b
DROP TABLE t1;
11 changes: 11 additions & 0 deletions mysql-test/suite/galera/t/mdev-31651.test
@@ -0,0 +1,11 @@
--source include/galera_cluster.inc


call mtr.add_suppression("BINLOG_BASE64_EVENT: Could not read field.*");
call mtr.add_suppression("BINLOG_BASE64_EVENT: Could not execute Write_rows_v1 event on table.*");
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b INT, KEY(b)) engine=innodb;
BINLOG 'AMqaOw8BAAAAdAAAAHgAAAAAAAQANS42LjM0LTc5LjEtZGVidWctbG9nAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAYVx w2w=';
--error ER_GET_ERRNO
BINLOG 'wlZOTxMBAAAAKgAAADwCAAAAACkAAAAAAAEABHRlc3QAAnQxAAIDAwAC wlZOTxcBAAAAJgAAAGICAAAAACkAAAAAAAEAAv/8AgAAAAgAAAA=';
SELECT * FROM t1;
DROP TABLE t1;
5 changes: 3 additions & 2 deletions sql/wsrep_mysqld.cc
Expand Up @@ -2799,8 +2799,9 @@ int wsrep_ignored_error_code(Log_event* ev, int error)
const THD* thd= ev->thd;

DBUG_ASSERT(error);
DBUG_ASSERT(wsrep_thd_is_applying(thd) &&
!wsrep_thd_is_local_toi(thd));
/* Note that binlog events can be executed on master also with
BINLOG '....'; */
DBUG_ASSERT(!wsrep_thd_is_local_toi(thd));

if ((wsrep_ignore_apply_errors & WSREP_IGNORE_ERRORS_ON_RECONCILING_DML))
{
Expand Down

0 comments on commit f5c3e73

Please sign in to comment.