Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0(EOL), 10.1(EOL), 10.2(EOL)
Description
Given the OK macro used in innodb does a DBUG_RETURN(1) on expression failure the innodb implementation has a number of errors in i_s.cc
In the case of the OK expression failing:
- i_s_innodb_buf_page_lru_fill - heap isn't freed
- i_s_innodb_buffer_page_fill - deepest index loop - dict_sys->mutex isn't unlocked
- i_s_fts_config_fill - fails to close table, unlock dict_operation_lock and possibly clean up trx
- i_s_fts_index_cache_fill_one_index fails to free conv_str.f_str
- i_s_fts_deleted_generic_fill fails to free deleted, close table, unlock dict_operation_lock and possibly clean up trx
sync/sync0arr.cc appears safe in its OK usage (from 10.1 onwards)
In addition to the requirement for this fix, perhaps something like
(10.2)
diff --git a/storage/innobase/handler/i_s.h b/storage/innobase/handler/i_s.h
|
index 8d34fbf..8e455c4 100644
|
--- a/storage/innobase/handler/i_s.h
|
+++ b/storage/innobase/handler/i_s.h
|
@@ -70,6 +70,8 @@ extern struct st_maria_plugin i_s_innodb_sys_semaphore_waits;
|
|
#define OK(expr) \
|
if ((expr) != 0) { \
|
+ ib::error() << "Error populating innodb information schema with " \
|
+ << #expr; \
|
DBUG_RETURN(1); \
|
}
|
|
10.0,10.2 are still using fprintf(stderr.
Attachments
Issue Links
- causes
-
MDEV-16267 Wrong INFORMATION_SCHEMA.INNODB_BUFFER_PAGE.TABLE_NAME
- Closed