• Marko Mäkelä's avatar
    MDEV-28317 Assertion failures in row_undo_mod on recovery · 5aef0123
    Marko Mäkelä authored
    Starting with 10.3, an assertion would fail on the rollback of
    a recovered incomplete transaction if a table definition violates
    a FOREIGN KEY constraint.
    
    DICT_ERR_IGNORE_RECOVER_LOCK: Include also DICT_ERR_IGNORE_FK_NOKEY
    so that trx_resurrect_table_locks() will be able to load
    table definitions and resurrect IX locks. Previously, if the
    FOREIGN KEY constraints of a table were incomplete, the table
    would fail to load until rollback, and in 10.3 or later an assertion
    would fail that the rollback was not protected by a table IX lock.
    
    Thanks to commit 9de2e60d there
    will be no problems to enforce subsequent FOREIGN KEY operations
    even though a table with invalid REFERENCES clause was loaded.
    5aef0123
foreign_key.test 26 KB