summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2022-07-24 13:34:39 +0200
committerNikita Malyavin <nikitamalyavin@gmail.com>2023-04-18 00:29:50 +0300
commitc426d341fcc0075f4316da81c8a5f7d13223b079 (patch)
tree263c2ac307786a9b3b4c0e67e0b0bdf49862fa9e
parente231f02e533baa817636bd25c0ddecd0154c9ffb (diff)
downloadmariadb-git-c426d341fcc0075f4316da81c8a5f7d13223b079.tar.gz
MDEV-28816 Assertion `wsrep_thd_is_applying(thd)' failed in int wsrep_ignored_error_code(Log_event*, int)
wsrep expected that any Rows_log_event::do_apply_event() failures can only happen in the applier thread, because no other thread ever applies row events. With online alter it's no longer true.
-rw-r--r--sql/log_event_server.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/log_event_server.cc b/sql/log_event_server.cc
index 8a3c46b3595..88c7ba715fa 100644
--- a/sql/log_event_server.cc
+++ b/sql/log_event_server.cc
@@ -5111,7 +5111,8 @@ int Rows_log_event::do_apply_event(rpl_group_info *rgi)
ignored_error_code(actual_error) : 0);
#ifdef WITH_WSREP
- if (WSREP(thd) && wsrep_ignored_error_code(this, actual_error))
+ if (WSREP(thd) && wsrep_thd_is_applying(thd) &&
+ wsrep_ignored_error_code(this, actual_error))
{
idempotent_error= true;
thd->wsrep_has_ignored_error= true;