[MDEV-8043] innodb tablespace encryption Created: 2015-04-24  Updated: 2015-05-20  Resolved: 2015-05-15

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

Type: Task Priority: Critical
Reporter: Jonas Oreland Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None

Attachments: File innodb_space_encryption.patch    
Issue Links:
Relates

 Description   

there are the bug fixes as compared to c01fc2134d439282a21a2ddf687566e198ddee28 @ https://code.google.com/p/google-mysql/ (branch 17-scrubbing)



 Comments   
Comment by Sergei Golubchik [ 2015-05-09 ]

jonaso, what does this patch fix? The patch includes the test case but it passes for me without any code changes.

Comment by Jonas Oreland [ 2015-05-11 ]

Hi,

It fixes
1) a race condition where the redo log contains an update of the crypt data,
and it's currently inuse by other threads participating in recovery.
prior to patch, the code would delete the old object and replace it with new found in redolog, this could lead to use-after-free problems.
after patch, the code instead verifies that update is reasonable, and adjust an the existing object instead.

2) an bug with temporary innodb tables where they were dropped before crypt "sub-system" was initialized.
this is the testcase, I'm not sure why it doesn't fail for you. maybe Jan merged the code to put the initialization in the "right" place to start with.

this part of the patch split the initialization into fil_crypt_init() and fil_crypt_threads_init(),
and I see the the patch I uploaded is missing the calling of fil_crypt_threads_init and only adds a call to fil_crypt_init,
it should be that the call is added, and the old call should be changed.

Hope this makes sense

/Jonas

Comment by Sergei Golubchik [ 2015-05-15 ]

Thanks!

Generated at Thu Feb 08 07:24:12 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.