#At file:///home/cmiller/work/mysqlbzr/mysql-5.1-bugteam--bug38364/ based on revid:davi.arnaut@stripped
2730 Chad MILLER 2009-01-12
Bug#38364: gen_lex_hash segmentation fault in debug build
Bug#36428: MY_MUTEX_INIT_FAST is used before initialization
On some thread implementations, we need a fake mutex attri-
bute as a placeholder, which we define as a global variable,
"my_fast_mutexattr". Well. that must be initialized before
used in any mutexes, and the ordering of initializations in
the API function my_init() was wrong.
Now, put my_thread_global_init(), which initializes the attri-
butes that mutexes require.
modified:
mysys/my_init.c
=== modified file 'mysys/my_init.c'
--- a/mysys/my_init.c 2008-11-10 20:38:45 +0000
+++ b/mysys/my_init.c 2009-01-12 19:48:02 +0000
@@ -78,8 +78,12 @@ my_bool my_init(void)
my_umask= 0660; /* Default umask for new files */
my_umask_dir= 0700; /* Default umask for new directories */
init_glob_errs();
-#if defined(THREAD) && defined(SAFE_MUTEX)
+#if defined(THREAD)
+ if (my_thread_global_init())
+ return 1;
+# if defined(SAFE_MUTEX)
safe_mutex_global_init(); /* Must be called early */
+# endif
#endif
#if defined(THREAD) && defined(MY_PTHREAD_FASTMUTEX) && !defined(SAFE_MUTEX)
fastmutex_global_init(); /* Must be called early */
@@ -89,8 +93,6 @@ my_bool my_init(void)
#if defined(HAVE_PTHREAD_INIT)
pthread_init(); /* Must be called before DBUG_ENTER */
#endif
- if (my_thread_global_init())
- return 1;
#if !defined( __WIN__) && !defined(__NETWARE__)
sigfillset(&my_signals); /* signals blocked by mf_brkhant */
#endif
| Thread |
|---|
| • bzr commit into mysql-5.1-bugteam branch (chad:2730) Bug#36428 Bug#38364 | Chad MILLER | 12 Jan |