Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL), 11.3(EOL), 11.4, 11.5(EOL)
Description
While working on MDEV-34750, I noticed that InnoDB fails to report a crash recovery error when it is unable to properly parse the log corresponding to the latest checkpoint.
In MDEV-12103 (MariaDB Server 10.2.5), the checkpoint information was extended with a pointer to a log record that marks the current end of the log at the time of the log checkpoint.
The crash recovery logic fails to ensure that the log has been successfully parsed from the latest checkpoint LSN to the corresponding end-of-checkpoint record (MLOG_CHECKPOINT, which was replaced in MDEV-12353 with FILE_CHECKPOINT). InnoDB would start up on a possibly inconsistent database where not all data pages correspond to the same logical point of time, because the write-ahead-logging protocol had been violated.
Eventually, the corruption may be noticed by log sequence number ... is in the future! messages or by debug assertions on FIL_PAGE_LSN fields.
Attachments
Issue Links
- blocks
-
MDEV-34830 LSN in the future is not being treated as serious corruption
- Closed
- relates to
-
MDEV-12103 Reduce the time of looking for MLOG_CHECKPOINT during crash recovery
- Closed
-
MDEV-34750 SET GLOBAL innodb_log_file_size is not crash safe
- Closed