diff options
author | Alexey Botchkov <holyfoot@mysql.com> | 2010-09-02 23:37:04 +0500 |
---|---|---|
committer | Alexey Botchkov <holyfoot@mysql.com> | 2010-09-02 23:37:04 +0500 |
commit | c6024dfc4e09d5eed076230a8645a8f4dae0d2f8 (patch) | |
tree | 118ad3b6cdad8674425315bda73619e5783bc743 /libmysqld | |
parent | 7e8d74505e2334db76a20360168e650149c99cc5 (diff) | |
download | mariadb-git-c6024dfc4e09d5eed076230a8645a8f4dae0d2f8.tar.gz |
Bug#53251 mysql_library_init fails on second execution with embedded library
thread-specific variables weren't set when we load error message files.
per-file comments:
libmysqld/lib_sql.cc
Bug#53251 mysql_library_init fails on second execution with embedded library
we need to call my_thread_init() once more. Normally it's called at the my_init()
stage but that doesn't happen on the second my_init() call.
sql/derror.cc
Bug#53251 mysql_library_init fails on second execution with embedded library
use default errors for the embedded server.
sql/mysqld.cc
Bug#53251 mysql_library_init fails on second execution with embedded library
unregister server errors in clean_up(). Without it the error list contains
that on the second mysql_server_init() which is not good.
sql/set_var.cc
Bug#53251 mysql_library_init fails on second execution with embedded library
sys_var::cleanup() call instead of the destructor
sql/set_var.h
Bug#53251 mysql_library_init fails on second execution with embedded library
sys_var::cleanup() introduced instead of the destructor
sql/sys_vars.h
Bug#53251 mysql_library_init fails on second execution with embedded library
Sys_var_charptr::cleanup() implemented
Diffstat (limited to 'libmysqld')
-rw-r--r-- | libmysqld/lib_sql.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 94927c590cf..7d61dbc55f4 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -481,6 +481,10 @@ int init_embedded_server(int argc, char **argv, char **groups) char *fake_argv[] = { (char *)"", 0 }; const char *fake_groups[] = { "server", "embedded", 0 }; my_bool acl_error; + + if (my_thread_init()) + return 1; + if (argc) { argcp= &argc; |