Author: glen Date: Tue Oct 27 12:34:19 2009 GMT Module: packages Tag: HEAD ---- Log message: - fixing php-cli with php-mysql ext segfault: https://bugs.launchpad.net/mysql-server/+bug/343870
---- Files affected: packages/mysql: mysql-fix-dummy-thread-race-condition.patch (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/mysql/mysql-fix-dummy-thread-race-condition.patch diff -u /dev/null packages/mysql/mysql-fix-dummy-thread-race-condition.patch:1.1 --- /dev/null Tue Oct 27 13:34:19 2009 +++ packages/mysql/mysql-fix-dummy-thread-race-condition.patch Tue Oct 27 13:34:13 2009 @@ -0,0 +1,64 @@ +## fix-dummy-thread-race-condition.dpatch by <[email protected]> +## +## Avoid dummy thread for pthread_exit workaround + +--- mysql-5.0.87/mysys/my_thr_init.c~ 2009-10-27 13:28:45.000000000 +0200 ++++ mysql-5.0.87/mysys/my_thr_init.c 2009-10-27 13:29:49.502552171 +0200 +@@ -47,23 +47,6 @@ + pthread_mutexattr_t my_errorcheck_mutexattr; + #endif + +-#ifdef TARGET_OS_LINUX +- +-/* +- Dummy thread spawned in my_thread_global_init() below to avoid +- race conditions in NPTL pthread_exit code. +-*/ +- +-static pthread_handler_t +-nptl_pthread_exit_hack_handler(void *arg __attribute__((unused))) +-{ +- /* Do nothing! */ +- pthread_exit(0); +- return 0; +-} +- +-#endif /* TARGET_OS_LINUX */ +- + static uint get_thread_lib(void); + + /* +@@ -71,33 +71,6 @@ + return 1; + } + +-#ifdef TARGET_OS_LINUX +- /* +- BUG#24507: Race conditions inside current NPTL pthread_exit() +- implementation. +- +- To avoid a possible segmentation fault during concurrent +- executions of pthread_exit(), a dummy thread is spawned which +- initializes internal variables of pthread lib. See bug description +- for a full explanation. +- +- TODO: Remove this code when fixed versions of glibc6 are in common +- use. +- */ +- if (thd_lib_detected == THD_LIB_NPTL) +- { +- pthread_t dummy_thread; +- pthread_attr_t dummy_thread_attr; +- +- pthread_attr_init(&dummy_thread_attr); +- pthread_attr_setdetachstate(&dummy_thread_attr, PTHREAD_CREATE_JOINABLE); +- +- if (pthread_create(&dummy_thread,&dummy_thread_attr, +- nptl_pthread_exit_hack_handler, NULL) == 0) +- (void)pthread_join(dummy_thread, NULL); +- } +-#endif /* TARGET_OS_LINUX */ +- + #ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP + /* + Set mutex type to "fast" a.k.a "adaptive" ================================================================ _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
