Follow-up fix of MDEV-14717 RENAME TABLE in InnoDB is not crash-safe
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.
Showing
Please register or sign in to comment