• Jan Lindström's avatar
    MDEV-13557: Startup failure, unable to decrypt ibdata1 · 352d27ce
    Jan Lindström authored
    Fixes also MDEV-13488: InnoDB writes CRYPT_INFO even though
    encryption is not enabled.
    
    Problem was that we created encryption metadata (crypt_data) for
    system tablespace even when no encryption was enabled and too early.
    System tablespace can be encrypted only using key rotation.
    
    Test innodb-key-rotation-disable, innodb_encryption, innodb_lotoftables
    require adjustment because INFORMATION_SCHEMA INNODB_TABLESPACES_ENCRYPTION
    contain row only if tablespace really has encryption metadata.
    
    fil_crypt_set_thread_cnt: Send message to background encryption threads
    if they exits when they are ready. This is required to find tablespaces
    requiring key rotation if no other changes happen.
    
    fil_crypt_find_space_to_rotate: Decrease the amount of time waiting
    when nothing happens to better enable key rotation on startup.
    
    fsp_header_init: Write encryption metadata to page 0 only if tablespace is
    encrypted or encryption is disabled by table option.
    
    i_s_dict_fill_tablespaces_encryption : Skip tablespaces that do not
    contain encryption metadata. This is required to avoid too early
    wait condition trigger in encrypted -> unencrypted state transfer.
    
    open_or_create_data_files: Do not create encryption metadata
    by default to system tablespace.
    352d27ce
i_s.cc 259 KB