summaryrefslogtreecommitdiff
path: root/sql/wsrep_server_service.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/wsrep_server_service.cc')
-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 ae70f819274..4916005e7ed 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()));
+ };);
}