diff options
author | Monty <monty@mariadb.org> | 2020-05-19 20:15:00 +0300 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2020-05-23 12:29:10 +0300 |
commit | f4ddde0698764b5df125d74cf261e0cc0af8311a (patch) | |
tree | 7ca67e4f4fd5c77b38119db57f272c94f8e649a2 /sql | |
parent | c4bf4b7aefcd95b898ea9c8714d09fc1045f304c (diff) | |
download | mariadb-git-f4ddde0698764b5df125d74cf261e0cc0af8311a.tar.gz |
Only apply wsrep_trx_fragment_size to InnoDB tables
MDEV-22617 Galera node crashes when trying to log to slow_log table in
streaming replication mode
Other things:
- Changed name of wsrep_after_row(two arguments) to
wsrep_after_row_internal(one argument) to not depended on the
function signature with unused arguments.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/handler.cc | 5 | ||||
-rw-r--r-- | sql/wsrep_trans_observer.h | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/sql/handler.cc b/sql/handler.cc index 6a452155cc5..2c8a8fab82a 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -6596,7 +6596,7 @@ static int wsrep_after_row(THD *thd) my_message(ER_ERROR_DURING_COMMIT, "wsrep_max_ws_rows exceeded", MYF(0)); DBUG_RETURN(ER_ERROR_DURING_COMMIT); } - else if (wsrep_after_row(thd, false)) + else if (wsrep_after_row_internal(thd)) { DBUG_RETURN(ER_LOCK_DEADLOCK); } @@ -6997,6 +6997,7 @@ int handler::ha_write_row(const uchar *buf) } #ifdef WITH_WSREP if (WSREP_NNULL(ha_thd()) && table_share->tmp_table == NO_TMP_TABLE && + ht->flags & HTON_WSREP_REPLICATION && !error && (error= wsrep_after_row(ha_thd()))) { DBUG_RETURN(error); @@ -7047,6 +7048,7 @@ int handler::ha_update_row(const uchar *old_data, const uchar *new_data) } #ifdef WITH_WSREP if (WSREP_NNULL(ha_thd()) && table_share->tmp_table == NO_TMP_TABLE && + ht->flags & HTON_WSREP_REPLICATION && !error && (error= wsrep_after_row(ha_thd()))) return error; #endif /* WITH_WSREP */ @@ -7110,6 +7112,7 @@ int handler::ha_delete_row(const uchar *buf) } #ifdef WITH_WSREP if (WSREP_NNULL(ha_thd()) && table_share->tmp_table == NO_TMP_TABLE && + ht->flags & HTON_WSREP_REPLICATION && !error && (error= wsrep_after_row(ha_thd()))) { return error; diff --git a/sql/wsrep_trans_observer.h b/sql/wsrep_trans_observer.h index 2e758da27d5..35f670b9af6 100644 --- a/sql/wsrep_trans_observer.h +++ b/sql/wsrep_trans_observer.h @@ -159,7 +159,7 @@ static inline int wsrep_start_trx_if_not_started(THD* thd) Return zero on succes, non-zero on failure. */ -static inline int wsrep_after_row(THD* thd, bool) +static inline int wsrep_after_row_internal(THD* thd) { if (thd->wsrep_cs().state() != wsrep::client_state::s_none && wsrep_thd_is_local(thd)) |