mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
BUG#23312 - server hangs 'closing tables' with insert delayed,flush
tables,alter table Deadlock could happen if there are delayed insert + flush tables + alter table running concurrently. This is fixed by removing a redundant mutex lock when killing a delayed thread.
This commit is contained in:
@@ -1181,8 +1181,6 @@ void kill_delayed_threads(void)
|
|||||||
delayed_insert *tmp;
|
delayed_insert *tmp;
|
||||||
while ((tmp=it++))
|
while ((tmp=it++))
|
||||||
{
|
{
|
||||||
/* Ensure that the thread doesn't kill itself while we are looking at it */
|
|
||||||
pthread_mutex_lock(&tmp->mutex);
|
|
||||||
tmp->thd.killed=1;
|
tmp->thd.killed=1;
|
||||||
if (tmp->thd.mysys_var)
|
if (tmp->thd.mysys_var)
|
||||||
{
|
{
|
||||||
@@ -1201,7 +1199,6 @@ void kill_delayed_threads(void)
|
|||||||
}
|
}
|
||||||
pthread_mutex_unlock(&tmp->thd.mysys_var->mutex);
|
pthread_mutex_unlock(&tmp->thd.mysys_var->mutex);
|
||||||
}
|
}
|
||||||
pthread_mutex_unlock(&tmp->mutex);
|
|
||||||
}
|
}
|
||||||
VOID(pthread_mutex_unlock(&LOCK_delayed_insert)); // For unlink from list
|
VOID(pthread_mutex_unlock(&LOCK_delayed_insert)); // For unlink from list
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user