diff options
author | Nirbhay Choubey <nirbhay@mariadb.com> | 2015-03-06 13:19:49 -0500 |
---|---|---|
committer | Nirbhay Choubey <nirbhay@mariadb.com> | 2015-03-06 13:19:49 -0500 |
commit | c6acdf7c281f91026cfac549d718511b9ed083aa (patch) | |
tree | 5850423de86bc91c9adb8024adee85a30c9b5110 /sql/wsrep_applier.cc | |
parent | 6f9e33ecb020bcf3e6db246bc04a9be153c63dc4 (diff) | |
download | mariadb-git-c6acdf7c281f91026cfac549d718511b9ed083aa.tar.gz |
MDEV-7203: replicate_events_marked_for_skip didn't work on Galera cluster
OPTION_SKIP_REPLICATION flag needs to be preserved for events received
on non-originating nodes.
Diffstat (limited to 'sql/wsrep_applier.cc')
-rw-r--r-- | sql/wsrep_applier.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/wsrep_applier.cc b/sql/wsrep_applier.cc index 6f1ead89158..f8e82f6b805 100644 --- a/sql/wsrep_applier.cc +++ b/sql/wsrep_applier.cc @@ -149,8 +149,9 @@ static wsrep_cb_status_t wsrep_apply_events(THD* thd, break; } - thd->set_server_id(ev->server_id); // use the original server id for logging - thd->set_time(); // time the query + /* Use the original server id for logging. */ + thd->set_server_id(ev->server_id); + thd->set_time(); // time the query wsrep_xid_init(&thd->transaction.xid_state.xid, &thd->wsrep_trx_meta.gtid.uuid, thd->wsrep_trx_meta.gtid.seqno); @@ -162,6 +163,10 @@ static wsrep_cb_status_t wsrep_apply_events(THD* thd, ev->when_sec_part= hrtime_sec_part(hrtime); } + thd->variables.option_bits= + (thd->variables.option_bits & ~OPTION_SKIP_REPLICATION) | + (ev->flags & LOG_EVENT_SKIP_REPLICATION_F ? OPTION_SKIP_REPLICATION : 0); + ev->thd = thd; exec_res = ev->apply_event(thd->wsrep_rgi); DBUG_PRINT("info", ("exec_event result: %d", exec_res)); |