summaryrefslogtreecommitdiff
path: root/sql/wsrep_server_service.h
diff options
context:
space:
mode:
authorTeemu Ollakka <teemu.ollakka@galeracluster.com>2019-07-25 16:41:45 +0300
committerTeemu Ollakka <teemu.ollakka@galeracluster.com>2019-08-29 16:35:57 +0300
commitb9cbb42bbffe839f41112b129238d846f3c27a59 (patch)
treeba0c8fb0737b7dbace8ea4e5eaa3cb3427de11a6 /sql/wsrep_server_service.h
parent5bb8945a3ae96c8b1e12c0418638eb2416fad0e4 (diff)
downloadmariadb-git-bb-10.4-sysprg.tar.gz
MDEV-19826 10.4 seems to crash with "pool-of-threads"bb-10.4-sysprg
MariaDB 10.4 was crashing when thread-handling was set to pool-of-threads and wsrep was enabled. There were two apparent reasons for the crash: - Connection handling in threadpool_common.cc was missing calls to control wsrep client state. - Thread specific storage which contains thread variables (THR_KEY_mysys) was not handled appropriately by wsrep patch when pool-of-threads was configured. This patch addresses the above issues in the following way: - Wsrep client state open/close was moved in thd_prepare_connection() and end_connection() to have common handling for one-thread-per-connection and pool-of-threads. - Thread local storage handling in wsrep patch was reworked by introducing set of wsrep_xxx_threadvars() calls which replace calls to THD store_globals()/reset_globals() and deal with thread handling specifics internally. Wsrep-lib was updated to version which relaxes internal concurrency related sanity checks. Rollback code from wsrep_rollback_process() was extracted to separate calls for better readability. Post rollback thread was removed as it was completely unused.
Diffstat (limited to 'sql/wsrep_server_service.h')
-rw-r--r--sql/wsrep_server_service.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/sql/wsrep_server_service.h b/sql/wsrep_server_service.h
index b8f1f009cde..6336fe2c473 100644
--- a/sql/wsrep_server_service.h
+++ b/sql/wsrep_server_service.h
@@ -77,5 +77,14 @@ private:
Wsrep_server_state& m_server_state;
};
+/**
+ Helper method to create new streaming applier.
+
+ @param orig_thd Original thd context to copy operation context from.
+ @param ctx Context string for debug logging.
+ */
+class Wsrep_applier_service;
+Wsrep_applier_service*
+wsrep_create_streaming_applier(THD *orig_thd, const char *ctx);
#endif /* WSREP_SERVER_SERVICE */