From d71fb7b79ab3892b03207bfa6be6ee9809f492cd Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 7 Dec 2006 09:18:35 -0500 Subject: WL#3618 - Remove HAVE_ROW_BASED_REPLICATION from source code. Please see worklog for details on files changed. BitKeeper/deleted/.del-have_row_based.require: Delete: mysql-test/r/have_row_based.require BitKeeper/deleted/.del-not_row_based.require: Delete: mysql-test/r/not_row_based.require BitKeeper/deleted/.del-have_row_based.inc: Delete: mysql-test/include/have_row_based.inc BitKeeper/deleted/.del-not_row_based.inc: Delete: mysql-test/include/not_row_based.inc BitKeeper/deleted/.del-replication.m4: Delete: config/ac-macros/replication.m4 --- include/config-win.h | 1 - include/my_global.h | 3 --- 2 files changed, 4 deletions(-) (limited to 'include') diff --git a/include/config-win.h b/include/config-win.h index 5290cf83896..4f48e410a33 100644 --- a/include/config-win.h +++ b/include/config-win.h @@ -436,7 +436,6 @@ inline double ulonglong2double(ulonglong value) #define HAVE_SPATIAL 1 #define HAVE_RTREE_KEYS 1 -#define HAVE_ROW_BASED_REPLICATION 1 #define HAVE_OPENSSL 1 #define HAVE_YASSL 1 diff --git a/include/my_global.h b/include/my_global.h index a7ec41068b3..c06982c78ed 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -79,9 +79,6 @@ #endif /* _WIN32... */ #ifndef EMBEDDED_LIBRARY -#ifdef WITH_ROW_BASED_REPLICATION -#define HAVE_ROW_BASED_REPLICATION 1 -#endif #ifdef WITH_NDB_BINLOG #define HAVE_NDB_BINLOG 1 #endif -- cgit v1.2.1 From f15e8a6ad32bc9f024e172d225cc2f98b98ae758 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 8 Dec 2006 11:41:12 +0100 Subject: BUG#24507 (rpl_log.test crash slave): The problem was located to lie inside current NPTL pthread_exit() implementation. Race conditions in this code can lead to segmentation fault. Hovewer, this can happen only in a race between first thread calling pthread_exit() and other threads. Workaround implemented in this patch spawns a dummy thread, which exits immediately, during thread lib initialization. This will exclude segment violations when further threads exit. include/my_pthread.h: define macro NPTL_PTHREAD_EXIT_BUG which controls whether workaround in my_thread_global_init() is included or not. mysys/my_thr_init.c: Spawn a dummy thread in my_thread_global_init() to initialize pthread lib internal variables. --- include/my_pthread.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'include') diff --git a/include/my_pthread.h b/include/my_pthread.h index 3e4388413e0..8051d75c59e 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -31,6 +31,26 @@ extern "C" { #define EXTERNC #endif /* __cplusplus */ +/* + BUG#24507: Race conditions inside current NPTL pthread_exit() implementation. + + If macro NPTL_PTHREAD_EXIT_HACK is defined then a hack described in the bug + report will be implemented inside my_thread_global_init() in my_thr_init.c. + + This amounts to spawning a dummy thread which does nothing but executes + pthread_exit(0). + + This bug is fixed in version 2.5 of glibc library. + + TODO: Remove this code when fixed versions of glibc6 are in common use. + */ + +#if defined(TARGET_OS_LINUX) && defined(HAVE_NPTL) && + defined(__GLIBC__) && ( __GLIBC__ < 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ < 5 ) +#define NPTL_PTHREAD_EXIT_BUG 1 +#endif + + #if defined(__WIN__) || defined(OS2) #ifdef OS2 -- cgit v1.2.1 From 8b78f07298572a5231d2767cd661363713ba6760 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 8 Dec 2006 19:23:12 +0100 Subject: Minor fix include/my_pthread.h: Fixed missing \ in #if directive. --- include/my_pthread.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/my_pthread.h b/include/my_pthread.h index 8051d75c59e..24f3fd62b8e 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -45,7 +45,7 @@ extern "C" { TODO: Remove this code when fixed versions of glibc6 are in common use. */ -#if defined(TARGET_OS_LINUX) && defined(HAVE_NPTL) && +#if defined(TARGET_OS_LINUX) && defined(HAVE_NPTL) && \ defined(__GLIBC__) && ( __GLIBC__ < 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ < 5 ) #define NPTL_PTHREAD_EXIT_BUG 1 #endif -- cgit v1.2.1