mirror of
https://github.com/MariaDB/server.git
synced 2025-01-28 17:54:16 +01:00
MDEV-27190 InnoDB upgrade from 10.2, 10.3, 10.4 is not crash-safe
During startup, InnoDB must write a FILE_CHECKPOINT record. However, before MDEV-12353 (in MariaDB Server 10.2, 10.3, 10.4) the corresponding record MLOG_CHECKPOINT was encoded in a different way. When we are upgrading from a logically empty 10.2, 10.3, or 10.4 redo log, we must not write anything to the old log file, because if the server were killed during the upgrade, we would end up with a corrupted log file, and both the old and the new server would refuse to start up. On upgrade, we must simply create a new logically empty log file and replace the old ib_logfile0 with that.
This commit is contained in:
parent
890c55177d
commit
cfcfdc65df
1 changed files with 3 additions and 1 deletions
|
@ -3661,7 +3661,9 @@ completed:
|
|||
|
||||
log_sys.last_checkpoint_lsn = checkpoint_lsn;
|
||||
|
||||
if (!srv_read_only_mode && srv_operation == SRV_OPERATION_NORMAL) {
|
||||
if (!srv_read_only_mode && srv_operation == SRV_OPERATION_NORMAL
|
||||
&& (~log_t::FORMAT_ENCRYPTED & log_sys.log.format)
|
||||
== log_t::FORMAT_10_5) {
|
||||
/* Write a FILE_CHECKPOINT marker as the first thing,
|
||||
before generating any other redo log. This ensures
|
||||
that subsequent crash recovery will be possible even
|
||||
|
|
Loading…
Add table
Reference in a new issue