2683 Kristofer Pettersson 2008-08-06 [merge]
Manual merge 5.0->5.1
modified:
sql/share/errmsg.txt
sql/sql_acl.cc
sql/sql_parse.cc
2682 Davi Arnaut 2008-08-01
Bug#37003: Tests sporadically crashes with embedded server
Post-merge fix: Alter linking order so that the thread linking
flags appear last in the list. This needs to be done this way
because some linkers will not search the thread archive again
if a undefined symbol (pthread_kill in this case) appears later.
modified:
client/Makefile.am
=== modified file 'sql/share/errmsg.txt'
--- a/sql/share/errmsg.txt 2008-07-24 13:41:55 +0000
+++ b/sql/share/errmsg.txt 2008-08-06 14:20:41 +0000
@@ -4718,7 +4718,7 @@ ER_SLAVE_IGNORED_TABLE
swe "Slav SQL tr�n ignorerade fr�n pga en replicate-*-table regel"
ER_INCORRECT_GLOBAL_LOCAL_VAR
eng "Variable '%-.192s' is a %s variable"
- serbian "Incorrect foreign key definition for '%-.192s': %s"
+ serbian "Promenljiva '%-.192s' je %s promenljiva"
ger "Variable '%-.192s' ist eine %s-Variable"
nla "Variabele '%-.192s' is geen %s variabele"
spa "Variable '%-.192s' es una %s variable"
=== modified file 'sql/sql_acl.cc'
--- a/sql/sql_acl.cc 2008-07-17 18:26:55 +0000
+++ b/sql/sql_acl.cc 2008-08-06 14:20:41 +0000
@@ -5701,7 +5701,6 @@ bool mysql_drop_user(THD *thd, List <LEX
while ((tmp_user_name= user_list++))
{
- user_name= get_current_user(thd, tmp_user_name);
if (!(user_name= get_current_user(thd, tmp_user_name)))
{
result= TRUE;
=== modified file 'sql/sql_parse.cc'
--- a/sql/sql_parse.cc 2008-07-15 01:43:12 +0000
+++ b/sql/sql_parse.cc 2008-08-06 14:20:41 +0000
@@ -6484,15 +6484,24 @@ bool reload_acl_and_cache(THD *thd, ulon
thd->store_globals();
lex_start(thd);
}
+
if (thd)
{
- if (acl_reload(thd))
- result= 1;
- if (grant_reload(thd))
+ bool reload_acl_failed= acl_reload(thd);
+ bool reload_grants_failed= grant_reload(thd);
+ bool reload_servers_failed= servers_reload(thd);
+
+ if (reload_acl_failed || reload_grants_failed || reload_servers_failed)
+ {
result= 1;
- if (servers_reload(thd))
- result= 1; /* purecov: inspected */
+ /*
+ When an error is returned, my_message may have not been called and
+ the client will hang waiting for a response.
+ */
+ my_error(ER_UNKNOWN_ERROR, MYF(0), "FLUSH PRIVILEGES failed");
+ }
}
+
if (tmp_thd)
{
delete tmp_thd;
@@ -6581,8 +6590,10 @@ bool reload_acl_and_cache(THD *thd, ulon
tmp_write_to_binlog= 0;
if (lock_global_read_lock(thd))
return 1; // Killed
- result= close_cached_tables(thd, tables, FALSE, (options & REFRESH_FAST) ?
- FALSE : TRUE, TRUE);
+ if (close_cached_tables(thd, tables, FALSE, (options & REFRESH_FAST) ?
+ FALSE : TRUE, TRUE));
+ result= 1;
+
if (make_global_read_lock_block_commit(thd)) // Killed
{
/* Don't leave things in a half-locked state */
@@ -6591,8 +6602,11 @@ bool reload_acl_and_cache(THD *thd, ulon
}
}
else
- result= close_cached_tables(thd, tables, FALSE, (options & REFRESH_FAST) ?
- FALSE : TRUE, FALSE);
+ {
+ if (close_cached_tables(thd, tables, FALSE, (options & REFRESH_FAST) ?
+ FALSE : TRUE, FALSE));
+ result= 1;
+ }
my_dbopt_cleanup();
}
if (options & REFRESH_HOSTS)
@@ -6615,8 +6629,8 @@ bool reload_acl_and_cache(THD *thd, ulon
#ifdef OPENSSL
if (options & REFRESH_DES_KEY_FILE)
{
- if (des_key_file)
- result=load_des_key_file(des_key_file);
+ if (des_key_file && load_des_key_file(des_key_file))
+ result= 1;
}
#endif
#ifdef HAVE_REPLICATION
| Thread |
|---|
| • bzr push into mysql-5.1 branch (kpettersson:2682 to 2683) Bug#37003 | Kristofer Pettersson | 6 Aug |