• Jan Lindström's avatar
    MDEV-11939: innochecksum mistakes a file for an encrypted one (page 0 invalid) · 8b019f87
    Jan Lindström authored
    Always read full page 0 to determine does tablespace contain
    encryption metadata. Tablespaces that are page compressed or
    page compressed and encrypted do not compare checksum as
    it does not exists. For encrypted tables use checksum
    verification written for encrypted tables and normal tables
    use normal method.
    
    buf_page_is_checksum_valid_crc32
    buf_page_is_checksum_valid_innodb
    buf_page_is_checksum_valid_none
    	Add Innochecksum logging to file
    
    buf_page_is_corrupted
            Remove ib_logf and page_warn_strict_checksum
            calls in innochecksum compilation. Add innochecksum
            logging to file.
    
    fil0crypt.cc fil0crypt.h
            Modify to be able to use in innochecksum compilation and
    	move fil_space_verify_crypt_checksum to end of the file.
    	Add innochecksum logging to file.
    
    univ.i
            Add innochecksum strict_verify, log_file and cur_page_num
            variables as extern.
    
    page_zip_verify_checksum
            Add innochecksum logging to file.
    
    innochecksum.cc
            Lot of changes most notable able to read encryption
            metadata from page 0 of the tablespace.
    
    Added test case where we corrupt intentionally
    FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION (encryption key version)
    FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION+4 (post encryption checksum)
    FIL_DATA+10 (data)
    8b019f87
univ.i 23.5 KB