Bug#31409 RENAME TABLE causes server crash or deadlock when used with HANDLER statements
If mysql_lock_tables fails because the lock was aborted, we need to reset thd->some_tables_delete, otherwise we might loop indefinitely because handler's tables are not closed in a standard way, meaning that close_thread_tables() (which resets some_tables_deleted) is not used. This patch fixes sporadical failures of handler_myisam/innodb tests which were introduced by previous fix for this bug.
This commit is contained in:
parent
c3d06676f8
commit
b92f3309f1
@ -466,6 +466,12 @@ retry:
|
|||||||
{
|
{
|
||||||
mysql_ha_close_table(thd, tables);
|
mysql_ha_close_table(thd, tables);
|
||||||
hash_tables->table= NULL;
|
hash_tables->table= NULL;
|
||||||
|
/*
|
||||||
|
The lock might have been aborted, we need to manually reset
|
||||||
|
thd->some_tables_deleted because handler's tables are closed
|
||||||
|
in a non-standard way. Otherwise we might loop indefinitely.
|
||||||
|
*/
|
||||||
|
thd->some_tables_deleted= 0;
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user