Re: [Maria-developers] Page encryption exception handling.
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
participants (1)
-
Sergei Golubchik