mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-10714: Could not execute Delete_rows event on table; wsrep_max_ws_rows exceeded. Error_Code 1180
The wsrep_max_ws_rows related implementation should be skipped when server is running with wsrep disabled.
This commit is contained in:
22
mysql-test/suite/wsrep/r/wsrep_rpl.result
Normal file
22
mysql-test/suite/wsrep/r/wsrep_rpl.result
Normal file
@ -0,0 +1,22 @@
|
||||
include/master-slave.inc
|
||||
[connection master]
|
||||
#
|
||||
# MDEV-10714: Could not execute Delete_rows event on table;
|
||||
# wsrep_max_ws_rows exceeded. Error_Code 1180
|
||||
#
|
||||
CREATE TABLE t1(i INT) ENGINE = INNODB;
|
||||
SET @@GLOBAL.wsrep_max_ws_rows = 1;
|
||||
INSERT INTO t1 VALUES(1), (2);
|
||||
SELECT COUNT(*) = 2 FROM t1;
|
||||
COUNT(*) = 2
|
||||
1
|
||||
SET @@GLOBAL.wsrep_max_ws_rows = 1;
|
||||
DELETE FROM t1;
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
COUNT(*) = 0
|
||||
1
|
||||
DROP TABLE t1;
|
||||
SET @@GLOBAL.wsrep_max_ws_rows = 0;
|
||||
SET @@GLOBAL.wsrep_max_ws_rows = 0;
|
||||
include/rpl_end.inc
|
||||
# End of test.
|
1
mysql-test/suite/wsrep/t/wsrep_rpl.cnf
Normal file
1
mysql-test/suite/wsrep/t/wsrep_rpl.cnf
Normal file
@ -0,0 +1 @@
|
||||
!include ../../rpl/my.cnf
|
50
mysql-test/suite/wsrep/t/wsrep_rpl.test
Normal file
50
mysql-test/suite/wsrep/t/wsrep_rpl.test
Normal file
@ -0,0 +1,50 @@
|
||||
--source include/have_wsrep.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/master-slave.inc
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-10714: Could not execute Delete_rows event on table;
|
||||
--echo # wsrep_max_ws_rows exceeded. Error_Code 1180
|
||||
--echo #
|
||||
# Save wsrep_max_ws_rows on master and slave.
|
||||
connection master;
|
||||
let $wsrep_max_ws_rows_master = `SELECT @@GLOBAL.wsrep_max_ws_rows`;
|
||||
connection slave;
|
||||
let $wsrep_max_ws_rows_slave = `SELECT @@GLOBAL.wsrep_max_ws_rows`;
|
||||
|
||||
connection master;
|
||||
CREATE TABLE t1(i INT) ENGINE = INNODB;
|
||||
|
||||
# Setting wsrep_max_ws_rows should have no impact on replication master
|
||||
# unless its a cluster node.
|
||||
SET @@GLOBAL.wsrep_max_ws_rows = 1;
|
||||
INSERT INTO t1 VALUES(1), (2);
|
||||
|
||||
sync_slave_with_master;
|
||||
SELECT COUNT(*) = 2 FROM t1;
|
||||
|
||||
connection slave;
|
||||
# Setting wsrep_max_ws_rows should have no impact on replication slave
|
||||
# unless its a cluster node.
|
||||
SET @@GLOBAL.wsrep_max_ws_rows = 1;
|
||||
|
||||
connection master;
|
||||
DELETE FROM t1;
|
||||
|
||||
sync_slave_with_master;
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
|
||||
connection master;
|
||||
DROP TABLE t1;
|
||||
|
||||
sync_slave_with_master;
|
||||
|
||||
# Restore wsrep_max_ws_rows on master and slave
|
||||
connection master;
|
||||
eval SET @@GLOBAL.wsrep_max_ws_rows = $wsrep_max_ws_rows_master;
|
||||
connection slave;
|
||||
eval SET @@GLOBAL.wsrep_max_ws_rows = $wsrep_max_ws_rows_slave;
|
||||
|
||||
--source include/rpl_end.inc
|
||||
--echo # End of test.
|
||||
|
@ -6109,6 +6109,8 @@ int handler::ha_write_row(uchar *buf)
|
||||
if (unlikely(error= binlog_log_row(table, 0, buf, log_func)))
|
||||
DBUG_RETURN(error); /* purecov: inspected */
|
||||
#ifdef WITH_WSREP
|
||||
if (WSREP(current_thd))
|
||||
{
|
||||
current_thd->wsrep_affected_rows++;
|
||||
if (wsrep_max_ws_rows &&
|
||||
current_thd->wsrep_exec_mode != REPL_RECV &&
|
||||
@ -6118,6 +6120,7 @@ int handler::ha_write_row(uchar *buf)
|
||||
my_message(ER_ERROR_DURING_COMMIT, "wsrep_max_ws_rows exceeded", MYF(0));
|
||||
DBUG_RETURN(ER_ERROR_DURING_COMMIT);
|
||||
}
|
||||
}
|
||||
#endif /* WITH_WSREP */
|
||||
|
||||
DEBUG_SYNC_C("ha_write_row_end");
|
||||
@ -6153,6 +6156,8 @@ int handler::ha_update_row(const uchar *old_data, uchar *new_data)
|
||||
if (unlikely(error= binlog_log_row(table, old_data, new_data, log_func)))
|
||||
return error;
|
||||
#ifdef WITH_WSREP
|
||||
if (WSREP(current_thd))
|
||||
{
|
||||
current_thd->wsrep_affected_rows++;
|
||||
if (wsrep_max_ws_rows &&
|
||||
current_thd->wsrep_exec_mode != REPL_RECV &&
|
||||
@ -6162,6 +6167,7 @@ int handler::ha_update_row(const uchar *old_data, uchar *new_data)
|
||||
my_message(ER_ERROR_DURING_COMMIT, "wsrep_max_ws_rows exceeded", MYF(0));
|
||||
return ER_ERROR_DURING_COMMIT;
|
||||
}
|
||||
}
|
||||
#endif /* WITH_WSREP */
|
||||
return 0;
|
||||
}
|
||||
@ -6191,6 +6197,8 @@ int handler::ha_delete_row(const uchar *buf)
|
||||
if (unlikely(error= binlog_log_row(table, buf, 0, log_func)))
|
||||
return error;
|
||||
#ifdef WITH_WSREP
|
||||
if (WSREP(current_thd))
|
||||
{
|
||||
current_thd->wsrep_affected_rows++;
|
||||
if (wsrep_max_ws_rows &&
|
||||
current_thd->wsrep_exec_mode != REPL_RECV &&
|
||||
@ -6200,6 +6208,7 @@ int handler::ha_delete_row(const uchar *buf)
|
||||
my_message(ER_ERROR_DURING_COMMIT, "wsrep_max_ws_rows exceeded", MYF(0));
|
||||
return ER_ERROR_DURING_COMMIT;
|
||||
}
|
||||
}
|
||||
#endif /* WITH_WSREP */
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user