Fix wsrep_affected_rows.
The value of wsrep_affected_rows were not reseted properly for slave. Now we also wsrep_affected_rows in Xid_log_event::do_apply_event also , apart from THD::cleanup_after_query(). Signed-off-by: Sachin Setiya <sachin.setiya@mariadb.com>
This commit is contained in:
parent
1743d68868
commit
5bb7653667
@ -5,12 +5,12 @@ include/master-slave.inc
|
|||||||
# wsrep_max_ws_rows exceeded. Error_Code 1180
|
# wsrep_max_ws_rows exceeded. Error_Code 1180
|
||||||
#
|
#
|
||||||
CREATE TABLE t1(i INT) ENGINE = INNODB;
|
CREATE TABLE t1(i INT) ENGINE = INNODB;
|
||||||
SET @@GLOBAL.wsrep_max_ws_rows = 1;
|
SET @@GLOBAL.wsrep_max_ws_rows = 2;
|
||||||
INSERT INTO t1 VALUES(1), (2);
|
INSERT INTO t1 VALUES(1), (2);
|
||||||
SELECT COUNT(*) = 2 FROM t1;
|
SELECT COUNT(*) = 2 FROM t1;
|
||||||
COUNT(*) = 2
|
COUNT(*) = 2
|
||||||
1
|
1
|
||||||
SET @@GLOBAL.wsrep_max_ws_rows = 1;
|
SET @@GLOBAL.wsrep_max_ws_rows = 2;
|
||||||
DELETE FROM t1;
|
DELETE FROM t1;
|
||||||
SELECT COUNT(*) = 0 FROM t1;
|
SELECT COUNT(*) = 0 FROM t1;
|
||||||
COUNT(*) = 0
|
COUNT(*) = 0
|
||||||
|
@ -15,18 +15,13 @@ let $wsrep_max_ws_rows_slave = `SELECT @@GLOBAL.wsrep_max_ws_rows`;
|
|||||||
connection master;
|
connection master;
|
||||||
CREATE TABLE t1(i INT) ENGINE = INNODB;
|
CREATE TABLE t1(i INT) ENGINE = INNODB;
|
||||||
|
|
||||||
# Setting wsrep_max_ws_rows should have no impact on replication master
|
SET @@GLOBAL.wsrep_max_ws_rows = 2;
|
||||||
# unless its a cluster node.
|
|
||||||
SET @@GLOBAL.wsrep_max_ws_rows = 1;
|
|
||||||
INSERT INTO t1 VALUES(1), (2);
|
INSERT INTO t1 VALUES(1), (2);
|
||||||
|
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
SELECT COUNT(*) = 2 FROM t1;
|
SELECT COUNT(*) = 2 FROM t1;
|
||||||
|
|
||||||
connection slave;
|
connection slave;
|
||||||
# Setting wsrep_max_ws_rows should have no impact on replication slave
|
SET @@GLOBAL.wsrep_max_ws_rows = 2;
|
||||||
# unless its a cluster node.
|
|
||||||
SET @@GLOBAL.wsrep_max_ws_rows = 1;
|
|
||||||
|
|
||||||
connection master;
|
connection master;
|
||||||
DELETE FROM t1;
|
DELETE FROM t1;
|
||||||
@ -38,7 +33,6 @@ connection master;
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
sync_slave_with_master;
|
sync_slave_with_master;
|
||||||
|
|
||||||
# Restore wsrep_max_ws_rows on master and slave
|
# Restore wsrep_max_ws_rows on master and slave
|
||||||
connection master;
|
connection master;
|
||||||
eval SET @@GLOBAL.wsrep_max_ws_rows = $wsrep_max_ws_rows_master;
|
eval SET @@GLOBAL.wsrep_max_ws_rows = $wsrep_max_ws_rows_master;
|
||||||
|
@ -5943,7 +5943,7 @@ static int binlog_log_row(TABLE* table,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* enforce wsrep_max_ws_rows */
|
/* enforce wsrep_max_ws_rows */
|
||||||
if (table->s->tmp_table == NO_TMP_TABLE)
|
if (table->s->tmp_table == NO_TMP_TABLE && WSREP(thd))
|
||||||
{
|
{
|
||||||
thd->wsrep_affected_rows++;
|
thd->wsrep_affected_rows++;
|
||||||
if (wsrep_max_ws_rows &&
|
if (wsrep_max_ws_rows &&
|
||||||
|
@ -7422,6 +7422,10 @@ int Xid_log_event::do_apply_event(rpl_group_info *rgi)
|
|||||||
Record any GTID in the same transaction, so slave state is transactionally
|
Record any GTID in the same transaction, so slave state is transactionally
|
||||||
consistent.
|
consistent.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*Set wsrep_affected_rows = 0 */
|
||||||
|
thd->wsrep_affected_rows= 0;
|
||||||
|
|
||||||
if (rgi->gtid_pending)
|
if (rgi->gtid_pending)
|
||||||
{
|
{
|
||||||
sub_id= rgi->gtid_sub_id;
|
sub_id= rgi->gtid_sub_id;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user