diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2018-06-26 11:34:51 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2018-06-26 11:34:51 +0300 |
commit | c4eb4bcef648eb2ebdc6edc06905f39f95ef7f6b (patch) | |
tree | be034e1ec0e803ebafaf8a264195565cc78db274 /storage/innobase/buf | |
parent | c09a8b5b36edb494e2bcc93074c06e26cd9f2b92 (diff) | |
download | mariadb-git-c4eb4bcef648eb2ebdc6edc06905f39f95ef7f6b.tar.gz |
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.
Diffstat (limited to 'storage/innobase/buf')
-rw-r--r-- | storage/innobase/buf/buf0lru.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/storage/innobase/buf/buf0lru.cc b/storage/innobase/buf/buf0lru.cc index 7039ecdf4a6..1f2b6f40529 100644 --- a/storage/innobase/buf/buf0lru.cc +++ b/storage/innobase/buf/buf0lru.cc @@ -356,9 +356,10 @@ next_page: ut_free(page_arr); } -/** 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) { for (dict_index_t* index = dict_table_get_first_index(table); index != NULL; @@ -369,13 +370,15 @@ UNIV_INTERN void buf_LRU_drop_page_hash_for_tablespace(dict_table_t* table) } } - return; + return false; drop_ahi: ulint id = table->space; for (ulint i = 0; i < srv_buf_pool_instances; i++) { buf_LRU_drop_page_hash_for_tablespace(buf_pool_from_array(i), id); } + + return true; } /******************************************************************//** |