mirror of
https://github.com/MariaDB/server.git
synced 2026-04-28 11:15:33 +02:00
MDEV-6749 - Deadlock between GRANT/REVOKE, SELECT FROM I_S.COLUMNS,
SET slow_query_log and failed connection attempt A very subtle though valid deadlock. Deadlock chain: wrlock(LOCK_grant) -> lock(acl_cache->lock) GRANT/REVOKE CREATE/DROP USER lock(LOCK_open) -> rdlock(LOCK_grant) SELECT * FROM I_S.COLUMNS wrlock(LOCK_logger) -> lock(LOCK_open) SET @@global.slow_query_log='ON' lock(acl_cache->lock) -> rdlock(LOCK_logger) Failed connection Fixed by removing relationship between acl_cache->lock and LOCK_logger during failed connection attempt.
This commit is contained in:
parent
53a44915c5
commit
d1e46a50bc
1 changed files with 1 additions and 1 deletions
|
|
@ -9224,9 +9224,9 @@ bool acl_authenticate(THD *thd, uint connect_errors,
|
|||
mpvio.auth_info.authenticated_as, TRUE);
|
||||
if (!acl_proxy_user)
|
||||
{
|
||||
mysql_mutex_unlock(&acl_cache->lock);
|
||||
if (!thd->is_error())
|
||||
login_failed_error(thd);
|
||||
mysql_mutex_unlock(&acl_cache->lock);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
acl_user= acl_proxy_user->copy(thd->mem_root);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue