[MDEV-14701] install_db shows corruption for rest encryption with innodb_data_file_path=ibdata1:3M Created: 2017-12-18  Updated: 2017-12-21  Resolved: 2017-12-19

Status: Closed
Project: MariaDB Server
Component/s: Encryption, Storage Engine - InnoDB, Storage Engine - XtraDB
Affects Version/s: 10.1.27
Fix Version/s: 10.1.30

Type: Bug Priority: Major
Reporter: Jan Lindström (Inactive) Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-13557 Startup failure, unable to decrypt ib... Closed
Relates
relates to MDEV-12113 install_db shows corruption for rest ... Closed

 Comments   
Comment by Jan Lindström (Inactive) [ 2017-12-19 ]

https://github.com/MariaDB/server/commit/a2367fc893d8adf9571b13f3e08d37e32226f32a

Comment by Marko Mäkelä [ 2017-12-19 ]

Looks OK to me.
Please amend the commit comment to explain when exactly we can have key_version==0 on an encrypted tablespace.
A test case would be nice, but given that the problem occurs during bootstrap, it may be challenging to write a test case.

Comment by Jan Lindström (Inactive) [ 2017-12-19 ]

commit ed7e4b68ed59fb7c34dc06625dfe378e71d1e8a7
Author: Jan Lindström <jan.lindstrom@mariadb.com>
Date: Tue Dec 19 16:45:10 2017 +0200

MDEV-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.

Comment by Marko Mäkelä [ 2017-12-21 ]

I believe that this bug was introduced in the MariaDB 10.1 series only. The MariaDB 10.2 and 10.3 series should be unaffected, because they would never write the FLUSH_LSN field in other files of the system tablespace than the first one.

Generated at Thu Feb 08 08:15:36 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.