diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index a7d1f6a1b38..6052284428e 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -9573,16 +9573,17 @@ bool mysql_create_user(THD *thd, List &list, bool handle_as_role) } } + if (result && some_users_dropped && !handle_as_role) + { + /* Rebuild in-memory structs, since 'acl_users' has been modified */ + rebuild_check_host(); + rebuild_role_grants(); + } + mysql_mutex_unlock(&acl_cache->lock); if (result) { - if (some_users_dropped && !handle_as_role) - { - /* Rebuild in-memory structs, since 'acl_users' has been modified */ - rebuild_check_host(); - rebuild_role_grants(); - } my_error(ER_CANNOT_USER, MYF(0), (handle_as_role) ? "CREATE ROLE" : "CREATE USER", wrong_users.c_ptr_safe());