• Marko Mäkelä's avatar
    MDEV-22495 Assertion ...status != buf_page_t::FREED in ibuf_read_merge_pages() · 4a5be2e9
    Marko Mäkelä authored
    ibuf_read_merge_pages(): Request a possibly freed page.
    The change buffer is discarded lazily for freed pages either
    by this function or when buf_page_create() reuses a page.
    
    buf_page_get_low(): Relax a debug assertion.
    Do not attempt change buffer merge on freed pages.
    
    ibuf_merge_or_delete_for_page(): Assert that the page state is NORMAL.
    INIT_ON_FLUSH is not possible, because in that case buf_page_create()
    should have removed any buffered changes for the page.
    
    buf_page_get_gen(): Apply buffered changes also in the case when
    we can avoid reading the page based on buffered redo log records.
    This addresses a hard-to-reproduce scenario that was broken in
    commit 6697135c.
    4a5be2e9
ibuf0ibuf.cc 136 KB