Skip to content

Commit

Permalink
MDEV-13475 InnoDB: Failing assertion: lsn == log_sys->lsn || srv_forc…
Browse files Browse the repository at this point in the history
…e_recovery == SRV_FORCE_NO_LOG_REDO

At shutdown, we would have lsn == srv_start_lsn == 0 if the server
was started up in --innodb-read-only mode with an old-format redo log.

This regression was caused by MDEV-13430, which skips some redo log
processing at startup when the redo log file format differs (and the
redo log has been determined to be logically empty).

Even though the MDEV-13430 change was introduced in MariaDB 10.2.8,
the MariaDB Server 10.2 series is unaffected by this, because
it will refuse to start up from a version-tagged redo log that is
not tagged to be in the MySQL 5.7.9 or MariaDB 10.2.2 format.
Starting with MariaDB 10.3.1, there are multiple version-tagged
redo log formats.

recv_recovery_from_checkpoint_start(): When skipping an empty
different-format redo log, initialize srv_start_lsn and
recv_sys->recovered_lsn from the redo log file.
  • Loading branch information
dr-m committed Aug 10, 2017
1 parent 63ad4fe commit 237f23d
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions storage/innobase/log/log0recv.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3218,6 +3218,7 @@ recv_recovery_from_checkpoint_start(lsn_t flush_lsn)
&& (log_sys->log.format & ~LOG_HEADER_FORMAT_ENCRYPTED)
!= LOG_HEADER_FORMAT_CURRENT)) {

srv_start_lsn = recv_sys->recovered_lsn = log_sys->lsn;
log_mutex_exit();
return(err);
}
Expand Down

0 comments on commit 237f23d

Please sign in to comment.