-
Marko Mäkelä authored
If the latest InnoDB redo log checkpoint was stored in the first checkpoint slot and not the second one, InnoDB would incorrectly set log_sys->log.lsn to the previous checkpoint. It is possible that this logic error did not exist before commit 86927cc7, which removed traces of multiple InnoDB redo logs, to prepare for MDEV-12548 (Mariabackup for MariaDB 10.2). In the worst case, this error could mean that InnoDB unnecessarily fails to recover from redo log when the last-but-one checkpoint was overwritten, but the last checkpoint is intact. recv_find_max_checkpoint(), recv_find_max_checkpoint_0(): Do not overwrite the fields of log_sys->log with the information of an older checkpoint. recv_find_max_checkpoint(): Do not return DB_SUCCESS on an error. recv_recovery_from_checkpoint_start(): Return early if the log is in a version-tagged format but not in the latest format. (In this case, the log must be logically empty, and there is nothing to apply.)
6f623907