summaryrefslogtreecommitdiff
path: root/storage/innobase/buf
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2018-06-26 11:34:51 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2018-06-26 11:34:51 +0300
commitc4eb4bcef648eb2ebdc6edc06905f39f95ef7f6b (patch)
treebe034e1ec0e803ebafaf8a264195565cc78db274 /storage/innobase/buf
parentc09a8b5b36edb494e2bcc93074c06e26cd9f2b92 (diff)
downloadmariadb-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.cc11
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;
}
/******************************************************************//**