• Marko Mäkelä's avatar
    MDEV-30397: MariaDB crash due to DB_FAIL reported for a corrupted page · 9c157994
    Marko Mäkelä authored
    buf_read_page_low(): Map the buf_page_t::read_complete() return
    value DB_FAIL to DB_PAGE_CORRUPTED. The purpose of the DB_FAIL
    return value is to avoid error log noise when read-ahead brings
    in an unused page that is typically filled with NUL bytes.
    
    If a synchronous read is bringing in a corrupted page where the
    page frame does not contain the expected tablespace identifier and
    page number, that must be treated as an attempt to read a corrupted
    page. The correct error code for this is DB_PAGE_CORRUPTED.
    The error code DB_FAIL is not handled by row_mysql_handle_errors().
    
    This was missed in commit 0b47c126
    (MDEV-13542).
    9c157994
buf0rea.cc 23.9 KB