• Marko Mäkelä's avatar
    Follow-up fix of MDEV-14717 RENAME TABLE in InnoDB is not crash-safe · 9eb3fcc9
    Marko Mäkelä authored
    trx_undo_page_report_rename(): Return a pointer to the start of the
    undo log record, not to the start of the (not yet written) next free
    record. The wrong return value would sometimes cause ROLLBACK to crash
    in an assertion failure (trying to parse garbage from the free area at
    the end of the insert_undo log page) if the TRX_UNDO_RENAME_TABLE record
    was the very last thing that was written to the insert_undo log. This
    would occasionally happen when an ALTER TABLE operation is rolled
    back due to invalid FOREIGN KEY constraints in the innodb.innodb test.
    In these tests, the error ER_ERROR_ON_RENAME (1025) would be returned
    at the end of the ALGORITHM=COPY operation of ALTER TABLE.
    9eb3fcc9
trx0rec.cc 68 KB