Commit ed7e4b68 authored by Jan Lindström's avatar Jan Lindström

DEV-14701: install_db shows corruption for rest encryption with innodb_data_file_path=ibdata1:3M

Problem was that crypt_data->min_key_version is not a reliable way
to detect is tablespace encrypted and could lead that in first page
of the second (page 192 and similarly for other files if more configured)
system tablespace file used key_version is replaced with zero leading
a corruption as in next startup page is though to be corrupted.
Note that crypt_data->min_key_version is updated only after all
pages from tablespace have been processed (i.e. key rotation is done)
and flushed.

fil_write_flushed_lsn
        Use crypt_data->should_encrypt() instead.
parent 252e690c
......@@ -2085,7 +2085,9 @@ fil_write_flushed_lsn(
/* If tablespace is not encrypted, stamp flush_lsn to
first page of all system tablespace datafiles to avoid
unnecessary error messages on possible downgrade. */
if (!space->crypt_data || space->crypt_data->min_key_version == 0) {
if (!space->crypt_data
|| !space->crypt_data->should_encrypt()) {
fil_node_t* node;
ulint sum_of_sizes = 0;
......
......@@ -2136,7 +2136,8 @@ fil_write_flushed_lsn(
/* If tablespace is not encrypted, stamp flush_lsn to
first page of all system tablespace datafiles to avoid
unnecessary error messages on possible downgrade. */
if (!space->crypt_data || space->crypt_data->min_key_version == 0) {
if (!space->crypt_data
|| !space->crypt_data->should_encrypt()) {
fil_node_t* node;
ulint sum_of_sizes = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment