• Varun Gupta's avatar
    MDEV-23867: insert... select crash in compute_window_func · b94e8e4b
    Varun Gupta authored
    There are 2 issues here:
    
    Issue #1: memory allocation.
    An IO_CACHE that uses encryption uses a larger buffer (it needs space for the encrypted data,
    decrypted data, IO_CACHE_CRYPT struct to describe encryption parameters etc).
    
    Issue #2: IO_CACHE::seek_not_done
    When IO_CACHE objects are cloned, they still share the file descriptor.
    This means, operation on one IO_CACHE may change the file read position
    which will confuse other IO_CACHEs using it.
    
    The fix of these issues would be:
    Allocate the buffer to also include the extra size needed for encryption.
    Perform seek again after one IO_CACHE reads the file.
    b94e8e4b
my_sys.h 41.9 KB