mirror of
https://github.com/MariaDB/server.git
synced 2025-09-30 21:09:17 +02:00
![]() Problem ======= - Mariabackup tool silently produce corrupted backups of Aria tables. Identified three issues that prevents proper detection of page corruption: aria_read_data(), aria_read_index() does incorrect CRC validation after doing CRC check, allows corrupted pages to pass undetected. aria_read_data(), aria_read_index() couldn't handle zero filled pages. Based on the size of aria_pagecache_buffer_size, pages could be in cache when backup tries to read the data from file maria_page_crc_check(): Prevents correctly identifying and skipping zero-filled pages. Solution: ======== This commit resolves these critical issues to ensure the integrity of Aria table backups. Corrected CRC check: Updated the code in aria_read_data() to correctly check the return value from maria_page_crc_check(), so any CRC mismatch will now properly fail the backup and prevent corruption. Improved zero-page handling: The aria_read_data() and aria_read_index() functions are now robust enough to tolerate and correctly process zero-filled pages. The flawed conditional check in maria_page_crc_check() has been corrected to reliably identify zero-filled pages. |
||
---|---|---|
.. | ||
quicklz | ||
aria_backup_client.cc | ||
aria_backup_client.h | ||
backup_copy.cc | ||
backup_copy.h | ||
backup_debug.h | ||
backup_mysql.cc | ||
backup_mysql.h | ||
backup_wsrep.h | ||
CMakeLists.txt | ||
common.h | ||
common_engine.cc | ||
common_engine.h | ||
datasink.cc | ||
datasink.h | ||
ddl_log.cc | ||
ddl_log.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 | ||
thread_pool.cc | ||
thread_pool.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 |