MDEV-16515 InnoDB: Failing assertion: ++retries < 10000 in file

dict0dict.cc

buf_LRU_drop_page_hash_for_tablespace(): Return whether any adaptive
hash index entries existed. If yes, the caller should keep retrying to
drop the adaptive hash index.

row_import_for_mysql(), row_truncate_table_for_mysql(),
row_drop_table_for_mysql(): Ensure that the adaptive hash index was
entirely dropped for the table.
This commit is contained in:
Marko Mäkelä 2018-06-26 11:34:51 +03:00
commit c4eb4bcef6
10 changed files with 118 additions and 73 deletions

View file

@ -53,9 +53,11 @@ These are low-level functions
/** Minimum LRU list length for which the LRU_old pointer is defined */
#define BUF_LRU_OLD_MIN_LEN 512 /* 8 megabytes of 16k pages */
/** Drop the adaptive hash index for a tablespace.
@param[in,out] table table */
UNIV_INTERN void buf_LRU_drop_page_hash_for_tablespace(dict_table_t* table);
/** Try to drop the adaptive hash index for a tablespace.
@param[in,out] table table
@return whether anything was dropped */
UNIV_INTERN bool buf_LRU_drop_page_hash_for_tablespace(dict_table_t* table)
MY_ATTRIBUTE((warn_unused_result,nonnull));
/** Empty the flush list for all pages belonging to a tablespace.
@param[in] id tablespace identifier