mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
f8cf493290
- InnoDB fails to recover the full crc32 encrypted page from doublewrite buffer. The reason is that buf_dblwr_t::recover() fails to identify the space id from the page because the page has been encrypted from FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION bytes. Fix: === buf_dblwr_t::recover(): preserve any pages whose space_id does not match a known tablespace. These could be encrypted pages of tablespaces that had been created with innodb_checksum_algorithm=full_crc32. buf_page_t::read_complete(): If the page looks corrupted and the tablespace is encrypted and in full_crc32 format, try to restore the page from doublewrite buffer. recv_dblwr_t::recover_encrypted_page(): Find the page which has the same page number and try to decrypt the page using space->crypt_data. After decryption, compare the space id. Write the recovered page back to the file. |
||
---|---|---|
.. | ||
quicklz | ||
backup_copy.cc | ||
backup_copy.h | ||
backup_debug.h | ||
backup_mysql.cc | ||
backup_mysql.h | ||
backup_wsrep.h | ||
CMakeLists.txt | ||
common.h | ||
datasink.cc | ||
datasink.h | ||
ds_buffer.cc | ||
ds_buffer.h | ||
ds_compress.cc | ||
ds_compress.h | ||
ds_local.cc | ||
ds_local.h | ||
ds_stdout.cc | ||
ds_stdout.h | ||
ds_tmpfile.cc | ||
ds_tmpfile.h | ||
ds_xbstream.cc | ||
ds_xbstream.h | ||
encryption_plugin.cc | ||
encryption_plugin.h | ||
fil_cur.cc | ||
fil_cur.h | ||
innobackupex.cc | ||
innobackupex.h | ||
read_filt.cc | ||
read_filt.h | ||
write_filt.cc | ||
write_filt.h | ||
wsrep.cc | ||
xb_regex.h | ||
xbcloud.cc | ||
xbstream.cc | ||
xbstream.h | ||
xbstream_read.cc | ||
xbstream_write.cc | ||
xtrabackup.cc | ||
xtrabackup.h |