[MDEV-29475] trx_undo_rseg_free() does not write redo log Created: 2022-09-06  Updated: 2022-09-06  Resolved: 2022-09-06

Status: Closed
Project: MariaDB Server
Component/s: Backup, Storage Engine - InnoDB
Affects Version/s: 10.8.0, 10.5.12, 10.6.3, 10.7.0, 10.9.0, 10.10.0
Fix Version/s: 10.5.18, 10.6.10, 10.7.6, 10.8.5, 10.9.3, 10.10.2

Type: Bug Priority: Critical
Reporter: Marko Mäkelä Assignee: Marko Mäkelä
Resolution: Fixed Votes: 1
Labels: regression-10.5

Issue Links:
Relates
relates to MDEV-15912 InnoDB: Failing assertion: purge_sys.... Closed

 Description   

A merge by me introduced a regression in MariaDB Server 10.5.12 in the function trx_undo_seg_free():

-                       mtr.memset(rseg_header, TRX_RSEG + TRX_RSEG_UNDO_SLOTS
-                                  + undo->id * TRX_RSEG_SLOT_SIZE, 4, 0xff);
++                      memset(TRX_RSEG + TRX_RSEG_UNDO_SLOTS
++                             + undo->id * TRX_RSEG_SLOT_SIZE +
++                             rseg_header->frame, 0xff, 4);

Before the merge, a MEMSET record was being written to the redo log. Ever since the merge, we are only modifying the rollback segment header page without writing any log about the change. This might impact crash recovery and backup.

The code was being changed as part of MDEV-15912.


Generated at Thu Feb 08 10:08:53 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.