Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.1.1, 10.2.0, 10.3.0
Description
The function dict_stats_process_entry_from_defrag_pool() fails to invoke dict_table_close() when an index does not exist in the table (for example because it has been dropped):
dict_index_t* index = dict_table_find_index_on_id(table, index_id);
|
|
if (index == NULL) { |
return; |
}
|
|
/* Check whether index is corrupted */ |
if (dict_index_is_corrupted(index)) { |
dict_table_close(table, FALSE, FALSE);
|
return; |
}
|
As you can see above, existing but corrupted indexes are handled correctly.
Failure to release a table handle should cause an infinite wait at some point in InnoDB, at least in DROP TABLE:
2017-12-02 21:06:52 139784064132864 [Warning] InnoDB: Waited 270 seconds for ref-count on table: `db`.`tablename` space: 12345
|
Attachments
Issue Links
- is caused by
-
MDEV-5834 Merge Kakao Defragmentation implementation to MariaDB 10.1
- Closed