mirror of
https://github.com/MariaDB/server.git
synced 2026-10-23 18:49:29 +03:00
The debug injection ib_err_ins_undo_page_add_failure in trx_undo_report_row_operation() cleared undo_block to simulate a failure of trx_undo_add_page(), but left err as DB_SUCCESS. The function then returned DB_SUCCESS without writing an undo log record or setting *roll_ptr, so callers stored an invalid DB_ROLL_PTR in clustered index records. This caused assertion failures in trx_undo_page_report_modify() and trx_undo_prev_version_build(). The injection now also sets err=DB_OUT_OF_FILE_SPACE, simulating running out of tablespace capacity. MDEV-41616: when that failure was reported, ib_errf() was given the dberr_t value DB_OUT_OF_FILE_SPACE where an error number was expected, so the client received an unrelated message. Use ER_INNODB_UNDO_LOG_FULL.