mariadb/storage/innobase/log
Marko Mäkelä 6f623907cd Backport MDEV-13430 recovery improvement to MariaDB 10.2
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 86927cc712, 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.)
2017-08-08 09:44:38 +03:00
..
log0crypt.cc MDEV-13061 innodb_encrypt_log recovery is spamming the error log 2017-06-12 19:09:04 +03:00
log0log.cc MDEV-13452 Assertion `!recv_no_log_write' failed in log_reserve_and_open() 2017-08-07 13:54:37 +03:00
log0recv.cc Backport MDEV-13430 recovery improvement to MariaDB 10.2 2017-08-08 09:44:38 +03:00