diff options
author | Daniele Sciascia <daniele.sciascia@galeracluster.com> | 2021-09-02 14:29:59 +0200 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2021-09-06 08:16:06 +0300 |
commit | c3707691c2b4bfa1d94cc17b4d2c0d8bb8b410d7 (patch) | |
tree | 9443278ec65a6b7bfd102c4f16a99e6d0f09e579 /sql | |
parent | 865e5b6405d163c5591b400689717af80e99427f (diff) | |
download | mariadb-git-c3707691c2b4bfa1d94cc17b4d2c0d8bb8b410d7.tar.gz |
MDEV-25718 Assertion `transaction.is_streaming()' failed
* Update wsrep-lib which contains the fix
* Add deterministic test case that reproduces the assertion
Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
Diffstat (limited to 'sql')
-rw-r--r-- | sql/wsrep_server_service.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sql/wsrep_server_service.cc b/sql/wsrep_server_service.cc index 19259a43925..a8010874828 100644 --- a/sql/wsrep_server_service.cc +++ b/sql/wsrep_server_service.cc @@ -32,6 +32,7 @@ #include "sql_class.h" /* system variables */ #include "transaction.h" /* trans_xxx */ #include "sql_base.h" /* close_thread_tables */ +#include "debug_sync.h" static void init_service_thd(THD* thd, char* thread_stack) { @@ -388,6 +389,16 @@ int Wsrep_server_service::wait_committing_transactions(int timeout) return wsrep_wait_committing_connections_close(timeout); } -void Wsrep_server_service::debug_sync(const char*) +void Wsrep_server_service::debug_sync(const char* sync_point) { + DBUG_EXECUTE_IF(sync_point, { + std::stringstream dbug_action; + dbug_action << "now " + << "SIGNAL " << sync_point << "_reached " + << "WAIT_FOR " << sync_point << "_continue"; + const std::string& action(dbug_action.str()); + DBUG_ASSERT(!debug_sync_set_action(current_thd, + action.c_str(), + action.length())); + };); } |