Hi, Clemens! On Oct 13, Clemens Dörrhöfer wrote:
Hi Sergei,
I included an error, which was triggered by a missing key in the keyfile. The server will see a wrong space ID, since it has not been decrypted, which from my point of view is the reason for mariadb to crash. Basically we run into a problem when trying to decrypt a page using fil_decrypt_page theoretically we can catch this exception much sooner, since all we need to know is the key id we need for decryption / encryption and throw an exception as soon as we know that we cannot handle a key in best case before we trigger any aio.
fil_decrypt_page() at fil0pageencryption.cc:391 0x555555feeb91 os_file_read_func() at os0file.cc:3.156 0x555555e22648 pfs_os_file_read_func() at os0file.ic:288 0x555555fdb4fa fil_read_first_page() at fil0fil.cc:2.156 0x555555fe1eb0 fil_validate_single_table_tablespace() at fil0fil.cc:4.303 0x555555fe5fd0 fil_load_single_table_tablespace() at fil0fil.cc:4.443 0x555555fe64af fil_load_single_table_tablespaces() at fil0fil.cc:4.806 0x555555fe6d1a recv_init_crash_recovery() at log0recv.cc:3.046 0x555555e14447 recv_recovery_from_checkpoint_start_func() at log0recv.cc:3.360 0x555555e14c69 innobase_start_or_create_for_mysql() at srv0start.cc:2.471 0x555555eeea65
This still doesn't show where it crashes, only where you detect the missing key. But anyway, I agree, if you can detect a missing key sooner, you'd better do that, instead of returning invalid page to XtraDB, because it used to crash the server in case of severe errors like that. Regards, Sergei