aboutsummaryrefslogtreecommitdiffstats
path: root/main/mariadb/fix-pthread-detach.patch
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2018-09-26 12:30:23 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2018-09-26 12:30:23 +0300
commita44ca17fe6368538e4bbea9fd3c0ec0367102d4f (patch)
tree79d1398cd2bb1006a9cd83cc397d5fead8cde788 /main/mariadb/fix-pthread-detach.patch
parent71dbbd5d2ee0797f02723a536fc250b80fc5d342 (diff)
downloadaports-a44ca17fe6368538e4bbea9fd3c0ec0367102d4f.tar.bz2
aports-a44ca17fe6368538e4bbea9fd3c0ec0367102d4f.tar.xz
main/mariadb: apply upstream pthread patch
Diffstat (limited to 'main/mariadb/fix-pthread-detach.patch')
-rw-r--r--main/mariadb/fix-pthread-detach.patch48
1 files changed, 38 insertions, 10 deletions
diff --git a/main/mariadb/fix-pthread-detach.patch b/main/mariadb/fix-pthread-detach.patch
index 8ac865b0fd..6729d096ae 100644
--- a/main/mariadb/fix-pthread-detach.patch
+++ b/main/mariadb/fix-pthread-detach.patch
@@ -1,11 +1,39 @@
---- mariadb-10.3.9/sql/mysqld.cc
-+++ mariadb-10.3.9.detach/sql/mysqld.cc
-@@ -4842,8 +4842,6 @@
- init_show_explain_psi_keys();
- /* Parameter for threads created for connections */
- (void) pthread_attr_init(&connection_attrib);
-- (void) pthread_attr_setdetachstate(&connection_attrib,
-- PTHREAD_CREATE_DETACHED);
- pthread_attr_setscope(&connection_attrib, PTHREAD_SCOPE_SYSTEM);
+From c45b4a774b6d1404a080a1c1759f780fa78f223b Mon Sep 17 00:00:00 2001
+From: Sergey Vojtovich <svoj@mariadb.org>
+Date: Fri, 21 Sep 2018 16:04:16 +0400
+Subject: [PATCH] MDEV-17200 - pthread_detach called for already detached
+ threads
+
+pthread_detach_this_thread() was intended to be defined to something
+meaningful only on some ancient unixes, which don't have
+pthread_attr_setdetachstate() defined. Otherwise, on normal unixes,
+threads are created detached in the first place.
+
+This was broken in 0f01bf267680244ec488adaf65a42838756ed48e so that
+we started calling pthread_detach() for already detached threads.
+Intention was to detach aria checkpoint thread.
+
+However in 87007dc2f71634cc460271eb277ad851ec69c04b aria service threads
+were made joinable with appropriate handling, which makes breaking
+revision unneccessary.
+
+Revert remnants of 0f01bf267680244ec488adaf65a42838756ed48e, so that
+pthread_detach_this_thread() is meaningful only on some ancient unixes
+again.
+---
+ include/my_pthread.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/my_pthread.h b/include/my_pthread.h
+index 6b830ca36d24..ae2f912f979b 100644
+--- a/include/my_pthread.h
++++ b/include/my_pthread.h
+@@ -184,7 +184,7 @@ int pthread_cancel(pthread_t thread);
+ #define pthread_key(T,V) pthread_key_t V
+ #define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,(V))
+ #define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,(void*) (V))
+-#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(tmp); }
++#define pthread_detach_this_thread()
+ #define pthread_handler_t EXTERNC void *
+ typedef void *(* pthread_handler)(void *);
- #ifdef HAVE_REPLICATION