MDEV-14614 InnoDB: Failing assertion in dict_stats_rename_table()

dict_stats_rename_table(): After DB_LOCK_WAIT_TIMEOUT
or DB_DUPLICATE_KEY, reset the trx->error_state before retrying.
Also, properly treat DB_DEADLOCK as a hard error.
This commit is contained in:
Marko Mäkelä 2017-12-11 13:55:05 +02:00
parent 1e6ac94451
commit 434c9e6f0e

View File

@ -3659,8 +3659,8 @@ dict_stats_rename_table(
new_db_utf8, new_table_utf8, trx);
mutex_exit(&dict_sys->mutex);
/* fall through */
case DB_DEADLOCK:
case DB_LOCK_WAIT_TIMEOUT:
trx->error_state = DB_SUCCESS;
os_thread_sleep(200000 /* 0.2 sec */);
continue;
case DB_STATS_DO_NOT_EXIST:
@ -3701,8 +3701,8 @@ dict_stats_rename_table(
new_db_utf8, new_table_utf8, trx);
mutex_exit(&dict_sys->mutex);
/* fall through */
case DB_DEADLOCK:
case DB_LOCK_WAIT_TIMEOUT:
trx->error_state = DB_SUCCESS;
os_thread_sleep(200000 /* 0.2 sec */);
continue;
case DB_STATS_DO_NOT_EXIST: