summaryrefslogtreecommitdiff
path: root/storage/innobase/buf
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2020-10-16 22:02:54 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2020-10-16 22:02:54 +0300
commit6dc037a9d1af3ab56db7bf1dc69f6c46278a9224 (patch)
tree18da90684a93f44696e1280678e6cd686b721446 /storage/innobase/buf
parentbdbec5a2e9455dd8765900d220b5fcb12396e05a (diff)
downloadmariadb-git-6dc037a9d1af3ab56db7bf1dc69f6c46278a9224.tar.gz
MDEV-23399 fixup: Remove double-free of a buffer page
In commit 7cffb5f6e8a231a041152447be8980ce35d2c9b8 we changed the interface of buf_page_create() so that the free_block is allocated by the caller. Both calls to buf_LRU_block_free_non_file_page() should have been removed. This caused an assertion failure 'block->page.state() == BUF_BLOCK_MEMORY' in buf_LRU_block_free_non_file_page(). The bug only affected ROW_FORMAT=COMPRESSED pages.
Diffstat (limited to 'storage/innobase/buf')
-rw-r--r--storage/innobase/buf/buf0buf.cc1
1 files changed, 0 insertions, 1 deletions
diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc
index 031deaa0a23..9408ce7bf62 100644
--- a/storage/innobase/buf/buf0buf.cc
+++ b/storage/innobase/buf/buf0buf.cc
@@ -3827,7 +3827,6 @@ loop:
if (block->page.io_fix() != BUF_IO_NONE)
{
hash_lock->write_unlock();
- buf_LRU_block_free_non_file_page(free_block);
mysql_mutex_unlock(&buf_pool.mutex);
goto loop;
}