• Varun Gupta's avatar
    MDEV-22556: Incorrect result for window function when using encrypt-tmp-files=ON · 0a5668f5
    Varun Gupta authored
    The issue here is that end_of_file for encrypted temporary IO_CACHE (used by filesort) is updated
    using lseek.
    Encryption adds storage overhead and hides it from the caller by recalculating offsets and lengths.
    Two different IO_CACHE cannot possibly modify the same file
    because the encryption key is randomly generated and stored in the IO_CACHE.
    So when the tempfiles are encrypted DO NOT use lseek to change end_of_file.
    
    Further observations about updating end_of_file using lseek
    1) The end_of_file update is only used for binlog index files
    2) The whole point is to update file length when the file was modified via a different file descriptor.
    3) The temporary IO_CACHE files can never be modified via a different file descriptor.
    4) For encrypted temporary IO_CACHE, end_of_file should not be updated with lseek
    0a5668f5
tempfiles_encrypted.opt 23 Bytes