You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug #20857652 : SERVER CRASHES WITH CREATE/DROP USER
STATEMENT WITH A PARTICULAR SEQUENCE
Description :- Server crashes with CREATE/DROP USER
statements after a failed FLUSH PRIVILEGES statement.
Analysis :- When FLUSH PRIVILEGES fails because of the
failure of "open_and_lock_tables()" in "acl_reload()", the
ACL structures are freed. After this server crashes with
CREATE/DROP USER statements when it is trying to access the
freed ACL structures.
Fix :- ACL structures are retained even if FLUSH PRIVILEGES
fails in reloading ACL privileges. Similar behaviour is done
while reloading column, function and procedure privileges.
In the case of reloading function and procedure privileges
we come across with the following scenarios:-
1) mysql.procs_priv table is not present and proc_priv_hash
structure has been already initialized=>
mysql.procs_priv table has been dropped/renamed
Soln:- An error, "ERROR 1146 (42S02): Table
'mysql.procs_priv' doesn't exist", is thrown.
2) mysql.procs_priv table is not present and proc_priv_hash
structure is not yet initialized =>
a) We are using a pre 4.1 system tables.
or
b) We dropped/renamed mysql.proc_priv table and shutdown
the server and restarted the server again
Soln:- A warning, "[Warning] Table 'mysql.procs_priv'
does not exist. Please run mysql_upgrade." is
printed in the server log and a warning is
thrown to the client side as well.
Continue with reloading column privileges.
3) mysql.procs_priv table is present =>
Normal scenario. Column, function and procedure
privileges are reloaded as normal.
0 commit comments