• Thirunarayanan Balathandayuthapani's avatar
    MDEV-19435 buf_fix_count > 0 for corrupted page when it exits the LRU list · e9145aab
    Thirunarayanan Balathandayuthapani authored
    Problem:
    =========
    One of the purge thread access the corrupted page and tries to remove from
    LRU list. In the mean time, other purge threads are waiting for same page
    in buf_wait_for_read(). Assertion(buf_fix_count == 0) fails for the
    purge thread which tries to remove the page from LRU list.
    
    Solution:
    ========
    - Set the page id as FIL_NULL to indicate the page is corrupted before
    removing the block from LRU list. Acquire hash lock for the particular
    page id and wait for the other threads to release buf_fix_count
    for the block.
    
    - Added the error check for btr_cur_open() in row_search_on_row_ref().
    e9145aab
buf0rea.cc 26 KB