[MDEV-32890] LeakSanitizer errors in mem_heap_create_block_func upon query from I_S.INNODB_SYS_TABLES with LIMIT ROWS EXAMINED Created: 2023-11-27  Updated: 2023-11-28  Resolved: 2023-11-28

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.4
Fix Version/s: 10.4.33, 10.5.24, 10.6.17, 10.11.7, 11.0.5, 11.1.4, 11.2.3

Type: Bug Priority: Blocker
Reporter: Elena Stepanova Assignee: Thirunarayanan Balathandayuthapani
Resolution: Fixed Votes: 0
Labels: regression


 Description   

Set to blocker as it's a recent regression.

--source include/have_innodb.inc
 
CREATE TABLE t (a varchar(355), fulltext(a)) ENGINE=InnoDB;
SELECT NAME FROM information_schema.INNODB_SYS_TABLES LIMIT ROWS EXAMINED 10;
 
# Cleanup
DROP TABLE t;

10.4 64f44b22d9a3dab3d4c0b77addbcbdafde57b466

==3121870==ERROR: LeakSanitizer: detected memory leaks
 
Indirect leak of 1760 byte(s) in 1 object(s) allocated from:
    #0 0x7fad818b89cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x55f4345959b5 in mem_heap_create_block_func(mem_block_info_t*, unsigned long, char const*, unsigned int, unsigned long) /data/bld/10.4-asan/storage/innobase/mem/mem0mem.cc:277
    #2 0x55f43459627a in mem_heap_add_block(mem_block_info_t*, unsigned long) /data/bld/10.4-asan/storage/innobase/mem/mem0mem.cc:378
    #3 0x55f434a9fb48 in mem_heap_alloc /data/bld/10.4-asan/storage/innobase/include/mem0mem.inl:191
    #4 0x55f434aa2468 in dict_mem_table_create(char const*, fil_space_t*, unsigned long, unsigned long, unsigned long, unsigned long) /data/bld/10.4-asan/storage/innobase/dict/dict0mem.cc:182
    #5 0x55f434a95dd3 in dict_load_table_low /data/bld/10.4-asan/storage/innobase/dict/dict0load.cc:2656
    #6 0x55f434a8863e in dict_process_sys_tables_rec_and_mtr_commit(mem_block_info_t*, unsigned char const*, dict_table_t**, bool, mtr_t*) /data/bld/10.4-asan/storage/innobase/dict/dict0load.cc:402
    #7 0x55f4344c68de in i_s_sys_tables_fill_table /data/bld/10.4-asan/storage/innobase/handler/i_s.cc:5063
    #8 0x55f43344c468 in get_schema_tables_result(JOIN*, enum_schema_table_state) /data/bld/10.4-asan/sql/sql_show.cc:9224
    #9 0x55f43331769d in JOIN::exec_inner() /data/bld/10.4-asan/sql/sql_select.cc:4582
    #10 0x55f433315569 in JOIN::exec() /data/bld/10.4-asan/sql/sql_select.cc:4407
    #11 0x55f4333195f7 in mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/bld/10.4-asan/sql/sql_select.cc:4846
    #12 0x55f4332e9eda in handle_select(THD*, LEX*, select_result*, unsigned long) /data/bld/10.4-asan/sql/sql_select.cc:442
    #13 0x55f43325477b in execute_sqlcom_select /data/bld/10.4-asan/sql/sql_parse.cc:6521
    #14 0x55f433241b41 in mysql_execute_command(THD*) /data/bld/10.4-asan/sql/sql_parse.cc:3978
    #15 0x55f43325da6a in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/bld/10.4-asan/sql/sql_parse.cc:8060
    #16 0x55f433233ae1 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/bld/10.4-asan/sql/sql_parse.cc:1857
    #17 0x55f433230650 in do_command(THD*) /data/bld/10.4-asan/sql/sql_parse.cc:1378
    #18 0x55f433636d14 in do_handle_one_connection(CONNECT*) /data/bld/10.4-asan/sql/sql_connect.cc:1419
    #19 0x55f43363662b in handle_one_connection /data/bld/10.4-asan/sql/sql_connect.cc:1323
    #20 0x55f43429b26b in pfs_spawn_thread /data/bld/10.4-asan/storage/perfschema/pfs.cc:1869
    #21 0x7fad812a8043 in start_thread nptl/pthread_create.c:442
 
Indirect leak of 816 byte(s) in 1 object(s) allocated from:
    #0 0x7fad818b89cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x55f4345959b5 in mem_heap_create_block_func(mem_block_info_t*, unsigned long, char const*, unsigned int, unsigned long) /data/bld/10.4-asan/storage/innobase/mem/mem0mem.cc:277
    #2 0x55f43459627a in mem_heap_add_block(mem_block_info_t*, unsigned long) /data/bld/10.4-asan/storage/innobase/mem/mem0mem.cc:378
    #3 0x55f434a9fb48 in mem_heap_alloc /data/bld/10.4-asan/storage/innobase/include/mem0mem.inl:191
    #4 0x55f434a9f94d in mem_heap_zalloc /data/bld/10.4-asan/storage/innobase/include/mem0mem.inl:160
    #5 0x55f434aa1f51 in dict_mem_table_create(char const*, fil_space_t*, unsigned long, unsigned long, unsigned long, unsigned long) /data/bld/10.4-asan/storage/innobase/dict/dict0mem.cc:158
    #6 0x55f434a95dd3 in dict_load_table_low /data/bld/10.4-asan/storage/innobase/dict/dict0load.cc:2656
    #7 0x55f434a8863e in dict_process_sys_tables_rec_and_mtr_commit(mem_block_info_t*, unsigned char const*, dict_table_t**, bool, mtr_t*) /data/bld/10.4-asan/storage/innobase/dict/dict0load.cc:402
    #8 0x55f4344c68de in i_s_sys_tables_fill_table /data/bld/10.4-asan/storage/innobase/handler/i_s.cc:5063
    #9 0x55f43344c468 in get_schema_tables_result(JOIN*, enum_schema_table_state) /data/bld/10.4-asan/sql/sql_show.cc:9224
    #10 0x55f43331769d in JOIN::exec_inner() /data/bld/10.4-asan/sql/sql_select.cc:4582
    #11 0x55f433315569 in JOIN::exec() /data/bld/10.4-asan/sql/sql_select.cc:4407
    #12 0x55f4333195f7 in mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/bld/10.4-asan/sql/sql_select.cc:4846
    #13 0x55f4332e9eda in handle_select(THD*, LEX*, select_result*, unsigned long) /data/bld/10.4-asan/sql/sql_select.cc:442
    #14 0x55f43325477b in execute_sqlcom_select /data/bld/10.4-asan/sql/sql_parse.cc:6521
    #15 0x55f433241b41 in mysql_execute_command(THD*) /data/bld/10.4-asan/sql/sql_parse.cc:3978
    #16 0x55f43325da6a in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/bld/10.4-asan/sql/sql_parse.cc:8060
    #17 0x55f433233ae1 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/bld/10.4-asan/sql/sql_parse.cc:1857
    #18 0x55f433230650 in do_command(THD*) /data/bld/10.4-asan/sql/sql_parse.cc:1378
    #19 0x55f433636d14 in do_handle_one_connection(CONNECT*) /data/bld/10.4-asan/sql/sql_connect.cc:1419
    #20 0x55f43363662b in handle_one_connection /data/bld/10.4-asan/sql/sql_connect.cc:1323
    #21 0x55f43429b26b in pfs_spawn_thread /data/bld/10.4-asan/storage/perfschema/pfs.cc:1869
    #22 0x7fad812a8043 in start_thread nptl/pthread_create.c:442
 
Indirect leak of 232 byte(s) in 1 object(s) allocated from:
    #0 0x7fad818b89cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x55f4345959b5 in mem_heap_create_block_func(mem_block_info_t*, unsigned long, char const*, unsigned int, unsigned long) /data/bld/10.4-asan/storage/innobase/mem/mem0mem.cc:277
    #2 0x55f434a9fc08 in mem_heap_create_func /data/bld/10.4-asan/storage/innobase/include/mem0mem.inl:375
    #3 0x55f434aa1f3c in dict_mem_table_create(char const*, fil_space_t*, unsigned long, unsigned long, unsigned long, unsigned long) /data/bld/10.4-asan/storage/innobase/dict/dict0mem.cc:155
    #4 0x55f434a95dd3 in dict_load_table_low /data/bld/10.4-asan/storage/innobase/dict/dict0load.cc:2656
    #5 0x55f434a8863e in dict_process_sys_tables_rec_and_mtr_commit(mem_block_info_t*, unsigned char const*, dict_table_t**, bool, mtr_t*) /data/bld/10.4-asan/storage/innobase/dict/dict0load.cc:402
    #6 0x55f4344c68de in i_s_sys_tables_fill_table /data/bld/10.4-asan/storage/innobase/handler/i_s.cc:5063
    #7 0x55f43344c468 in get_schema_tables_result(JOIN*, enum_schema_table_state) /data/bld/10.4-asan/sql/sql_show.cc:9224
    #8 0x55f43331769d in JOIN::exec_inner() /data/bld/10.4-asan/sql/sql_select.cc:4582
    #9 0x55f433315569 in JOIN::exec() /data/bld/10.4-asan/sql/sql_select.cc:4407
    #10 0x55f4333195f7 in mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/bld/10.4-asan/sql/sql_select.cc:4846
    #11 0x55f4332e9eda in handle_select(THD*, LEX*, select_result*, unsigned long) /data/bld/10.4-asan/sql/sql_select.cc:442
    #12 0x55f43325477b in execute_sqlcom_select /data/bld/10.4-asan/sql/sql_parse.cc:6521
    #13 0x55f433241b41 in mysql_execute_command(THD*) /data/bld/10.4-asan/sql/sql_parse.cc:3978
    #14 0x55f43325da6a in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/bld/10.4-asan/sql/sql_parse.cc:8060
    #15 0x55f433233ae1 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/bld/10.4-asan/sql/sql_parse.cc:1857
    #16 0x55f433230650 in do_command(THD*) /data/bld/10.4-asan/sql/sql_parse.cc:1378
    #17 0x55f433636d14 in do_handle_one_connection(CONNECT*) /data/bld/10.4-asan/sql/sql_connect.cc:1419
    #18 0x55f43363662b in handle_one_connection /data/bld/10.4-asan/sql/sql_connect.cc:1323
    #19 0x55f43429b26b in pfs_spawn_thread /data/bld/10.4-asan/storage/perfschema/pfs.cc:1869
    #20 0x7fad812a8043 in start_thread nptl/pthread_create.c:442
 
Indirect leak of 51 byte(s) in 1 object(s) allocated from:
    #0 0x7fad818b89cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x55f434a9ff03 in mem_strdup /data/bld/10.4-asan/storage/innobase/include/mem0mem.inl:450
    #2 0x55f434aa225f in dict_mem_table_create(char const*, fil_space_t*, unsigned long, unsigned long, unsigned long, unsigned long) /data/bld/10.4-asan/storage/innobase/dict/dict0mem.cc:173
    #3 0x55f434a95dd3 in dict_load_table_low /data/bld/10.4-asan/storage/innobase/dict/dict0load.cc:2656
    #4 0x55f434a8863e in dict_process_sys_tables_rec_and_mtr_commit(mem_block_info_t*, unsigned char const*, dict_table_t**, bool, mtr_t*) /data/bld/10.4-asan/storage/innobase/dict/dict0load.cc:402
    #5 0x55f4344c68de in i_s_sys_tables_fill_table /data/bld/10.4-asan/storage/innobase/handler/i_s.cc:5063
    #6 0x55f43344c468 in get_schema_tables_result(JOIN*, enum_schema_table_state) /data/bld/10.4-asan/sql/sql_show.cc:9224
    #7 0x55f43331769d in JOIN::exec_inner() /data/bld/10.4-asan/sql/sql_select.cc:4582
    #8 0x55f433315569 in JOIN::exec() /data/bld/10.4-asan/sql/sql_select.cc:4407
    #9 0x55f4333195f7 in mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /data/bld/10.4-asan/sql/sql_select.cc:4846
    #10 0x55f4332e9eda in handle_select(THD*, LEX*, select_result*, unsigned long) /data/bld/10.4-asan/sql/sql_select.cc:442
    #11 0x55f43325477b in execute_sqlcom_select /data/bld/10.4-asan/sql/sql_parse.cc:6521
    #12 0x55f433241b41 in mysql_execute_command(THD*) /data/bld/10.4-asan/sql/sql_parse.cc:3978
    #13 0x55f43325da6a in mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool) /data/bld/10.4-asan/sql/sql_parse.cc:8060
    #14 0x55f433233ae1 in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool) /data/bld/10.4-asan/sql/sql_parse.cc:1857
    #15 0x55f433230650 in do_command(THD*) /data/bld/10.4-asan/sql/sql_parse.cc:1378
    #16 0x55f433636d14 in do_handle_one_connection(CONNECT*) /data/bld/10.4-asan/sql/sql_connect.cc:1419
    #17 0x55f43363662b in handle_one_connection /data/bld/10.4-asan/sql/sql_connect.cc:1323
    #18 0x55f43429b26b in pfs_spawn_thread /data/bld/10.4-asan/storage/perfschema/pfs.cc:1869
    #19 0x7fad812a8043 in start_thread nptl/pthread_create.c:442
 
SUMMARY: AddressSanitizer: 2859 byte(s) leaked in 4 allocation(s).

The failure started happening on 10.4 after this commit:

Author: Thirunarayanan Balathandayuthapani
Date:   Mon Nov 20 14:58:28 2023 +0530
 
    MDEV-28613 LeakSanitizer caused by I_S query using LIMIT ROWS EXAMINED



 Comments   
Comment by Marko Mäkelä [ 2023-11-27 ]

OK to push.

Generated at Thu Feb 08 10:34:48 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.