MDEV-25506 (2 of 3): Kill during DDL leaves orphan .ibd file
dict_drop_index_tree(): Even if SYS_INDEXES.PAGE contains the special value FIL_NULL, the tablespace identified by SYS_INDEXES.SPACE may exist and may need to be dropped. This would definitely be the case if the server had been killed right after a FILE_CREATE record was persistently written during CREATE TABLE, but before the transaction was committed. btr_free_if_exists(): Simplify the interface, to avoid repeated tablespace lookup. One more scenario is known to be broken: If the server is killed during DROP TABLE (or table-rebuilding ALTER TABLE) right after a FILE_DELETE record has been persistently written but before the file was deleted, then we could end up recovering no tablespace at all, and failing to delete the file, in either of fil_name_process() or dict_drop_index_tree(). Thanks to Elena Stepanova for providing "rr replay" and data directories of these scenarios.
Showing
Please register or sign in to comment