diff options
author | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2020-05-27 13:03:06 +0530 |
---|---|---|
committer | Thirunarayanan Balathandayuthapani <thiru@mariadb.com> | 2020-06-03 16:02:02 +0530 |
commit | ad2bf1129cfa85c00072b46e0355fe14bf69ee54 (patch) | |
tree | 0f8e93115e75ad5697bdcba7353b9f99bad4386c /include | |
parent | ca3aa679644e16f5283e1082d395a530c1803765 (diff) | |
download | mariadb-git-ad2bf1129cfa85c00072b46e0355fe14bf69ee54.tar.gz |
MDEV-22646 Assertion `table2->cached' failed in dict_table_t::add_to_cache
Problem:
========
During buffer pool resizing, InnoDB recreates the dictionary hash
tables. Dictionary hash table reuses the heap of AHI hash tables.
It leads to memory corruption.
Fix:
====
- While disabling AHI, free the heap and AHI hash tables. Recreate the
AHI hash tables and assign new heap when AHI is enabled.
- btr_blob_free() access invalid page if page was reallocated during
buffer poolresizing. So btr_blob_free() should get the page from
buf_pool instead of using existing block.
- btr_search_enabled and block->index should be checked after
acquiring the btr_search_sys latch
- Moved the buffer_pool_scan debug sync to earlier before accessing the
btr_search_sys latches to avoid the hang of truncate_purge_debug
test case
- srv_printf_innodb_monitor() should acquire btr_search_sys latches
before AHI hash tables.
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions