summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorDaniele Sciascia <daniele.sciascia@galeracluster.com>2021-09-02 14:29:59 +0200
committerJan Lindström <jan.lindstrom@mariadb.com>2021-09-06 08:16:06 +0300
commitc3707691c2b4bfa1d94cc17b4d2c0d8bb8b410d7 (patch)
tree9443278ec65a6b7bfd102c4f16a99e6d0f09e579 /sql
parent865e5b6405d163c5591b400689717af80e99427f (diff)
downloadmariadb-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.cc13
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()));
+ };);
}