Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
11.8, 12.0(EOL), 12.1
-
Not for Release Notes
Description
The following script:
CREATE TABLE t1 (a int, b int, KEY t1_IDX (a,b)) ENGINE=INNODB;
|
EXPLAIN SELECT t1.a,t1.b FROM t1
|
LEFT JOIN
|
(
|
SELECT a, b FROM t1 GROUP BY a, b
|
) AS t ON t1.a=t.a and t1.b<=>t.b;
|
leads to runtime error:
/src/mariadb/sql/opt_split.cc:697:26: runtime error: downcast of address 0x74985ef8f048 which does not point to an object of type 'Item_func_eq'
|
and subsequently triggers ASAN:
SUMMARY: AddressSanitizer: 32 byte(s) leaked in 2 allocation(s).
|
250813 7:52:07 [ERROR] /src/mariadb/sql/mariadbd got signal 6 ;
|
with the following stacktrace:
==12445==ERROR: LeakSanitizer: detected memory leaks
|
 |
Direct leak of 16 byte(s) in 1 object(s) allocated from:
|
#0 0x7cda56d2154b in realloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:81
|
#1 0x7cda560c3a5a (/lib/x86_64-linux-gnu/libstdc++.so.6+0xc3a5a) (BuildId: 8d4f2235ec34ae33c412aa436c18ef4618f2efa6)
|
#2 0x7cda560cf9eb (/lib/x86_64-linux-gnu/libstdc++.so.6+0xcf9eb) (BuildId: 8d4f2235ec34ae33c412aa436c18ef4618f2efa6)
|
#3 0x7cda560d0578 in __cxa_demangle (/lib/x86_64-linux-gnu/libstdc++.so.6+0xd0578) (BuildId: 8d4f2235ec34ae33c412aa436c18ef4618f2efa6)
|
#4 0x7cda5582fb9a in __sanitizer::Symbolizer::Demangle(char const*) ../../../../src/libsanitizer/sanitizer_common/sanitizer_symbolizer_libcdep.cpp:169
|
#5 0x7cda55808340 in RenderText ../../../../src/libsanitizer/ubsan/ubsan_diag.cpp:199
|
#6 0x7cda558098a5 in PrintMemorySnippet ../../../../src/libsanitizer/ubsan/ubsan_diag.cpp:329
|
#7 0x7cda558098a5 in __ubsan::Diag::~Diag() ../../../../src/libsanitizer/ubsan/ubsan_diag.cpp:385
|
#8 0x7cda5580f9b0 in HandleDynamicTypeCacheMiss ../../../../src/libsanitizer/ubsan/ubsan_handlers_cxx.cpp:69
|
#9 0x7cda5580fcae in __ubsan_handle_dynamic_type_cache_miss ../../../../src/libsanitizer/ubsan/ubsan_handlers_cxx.cpp:87
|
#10 0x5f9f60e05706 in add_ext_keyuse_for_splitting /src/mariadb/sql/opt_split.cc:697
|
#11 0x5f9f60e06f6d in add_ext_keyuses_for_splitting_field /src/mariadb/sql/opt_split.cc:761
|
#12 0x5f9f60e07976 in JOIN::add_keyuses_for_splitting() /src/mariadb/sql/opt_split.cc:836
|
#13 0x5f9f60e09ac9 in st_join_table::add_keyuses_for_splitting() /src/mariadb/sql/opt_split.cc:918
|
#14 0x5f9f5fc292f0 in make_join_statistics /src/mariadb/sql/sql_select.cc:6157
|
#15 0x5f9f5fbd29f4 in JOIN::optimize_inner() /src/mariadb/sql/sql_select.cc:2743
|
#16 0x5f9f5fbbef44 in JOIN::optimize() /src/mariadb/sql/sql_select.cc:2023
|
#17 0x5f9f5fc16e9d in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /src/mariadb/sql/sql_select.cc:5388
|
#18 0x5f9f5fe219c9 in mysql_explain_union(THD*, st_select_lex_unit*, select_result*) /src/mariadb/sql/sql_select.cc:31662
|
#19 0x5f9f5f965569 in execute_sqlcom_select /src/mariadb/sql/sql_parse.cc:6106
|
#20 0x5f9f5f9361dd in mysql_execute_command(THD*, bool) /src/mariadb/sql/sql_parse.cc:3950
|
#21 0x5f9f5f98729f in mysql_parse(THD*, char*, unsigned int, Parser_state*) /src/mariadb/sql/sql_parse.cc:7883
|
#22 0x5f9f5f90455c in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /src/mariadb/sql/sql_parse.cc:1878
|
#23 0x5f9f5f8f8975 in do_command(THD*, bool) /src/mariadb/sql/sql_parse.cc:1417
|
#24 0x5f9f605f0a37 in do_handle_one_connection(CONNECT*, bool) /src/mariadb/sql/sql_connect.cc:1414
|
#25 0x5f9f605efac6 in handle_one_connection /src/mariadb/sql/sql_connect.cc:1326
|
#26 0x5f9f62cf14b5 in pfs_spawn_thread /src/mariadb/storage/perfschema/pfs.cc:2198
|
#27 0x7cda56c5f972 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:239
|
#28 0x7cda554a27f0 in start_thread nptl/pthread_create.c:448
|
 |
Direct leak of 16 byte(s) in 1 object(s) allocated from:
|
#0 0x7cda56d2154b in realloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:81
|
#1 0x7cda560c3a5a (/lib/x86_64-linux-gnu/libstdc++.so.6+0xc3a5a) (BuildId: 8d4f2235ec34ae33c412aa436c18ef4618f2efa6)
|
#2 0x7cda560cf9eb (/lib/x86_64-linux-gnu/libstdc++.so.6+0xcf9eb) (BuildId: 8d4f2235ec34ae33c412aa436c18ef4618f2efa6)
|
#3 0x7cda560d0578 in __cxa_demangle (/lib/x86_64-linux-gnu/libstdc++.so.6+0xd0578) (BuildId: 8d4f2235ec34ae33c412aa436c18ef4618f2efa6)
|
#4 0x7cda5582fb9a in __sanitizer::Symbolizer::Demangle(char const*) ../../../../src/libsanitizer/sanitizer_common/sanitizer_symbolizer_libcdep.cpp:169
|
#5 0x7cda55808340 in RenderText ../../../../src/libsanitizer/ubsan/ubsan_diag.cpp:199
|
#6 0x7cda5580907a in __ubsan::Diag::~Diag() ../../../../src/libsanitizer/ubsan/ubsan_diag.cpp:379
|
#7 0x7cda5580f9b0 in HandleDynamicTypeCacheMiss ../../../../src/libsanitizer/ubsan/ubsan_handlers_cxx.cpp:69
|
#8 0x7cda5580fcae in __ubsan_handle_dynamic_type_cache_miss ../../../../src/libsanitizer/ubsan/ubsan_handlers_cxx.cpp:87
|
#9 0x5f9f60e05706 in add_ext_keyuse_for_splitting /src/mariadb/sql/opt_split.cc:697
|
#10 0x5f9f60e06f6d in add_ext_keyuses_for_splitting_field /src/mariadb/sql/opt_split.cc:761
|
#11 0x5f9f60e07976 in JOIN::add_keyuses_for_splitting() /src/mariadb/sql/opt_split.cc:836
|
#12 0x5f9f60e09ac9 in st_join_table::add_keyuses_for_splitting() /src/mariadb/sql/opt_split.cc:918
|
#13 0x5f9f5fc292f0 in make_join_statistics /src/mariadb/sql/sql_select.cc:6157
|
#14 0x5f9f5fbd29f4 in JOIN::optimize_inner() /src/mariadb/sql/sql_select.cc:2743
|
#15 0x5f9f5fbbef44 in JOIN::optimize() /src/mariadb/sql/sql_select.cc:2023
|
#16 0x5f9f5fc16e9d in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) /src/mariadb/sql/sql_select.cc:5388
|
#17 0x5f9f5fe219c9 in mysql_explain_union(THD*, st_select_lex_unit*, select_result*) /src/mariadb/sql/sql_select.cc:31662
|
#18 0x5f9f5f965569 in execute_sqlcom_select /src/mariadb/sql/sql_parse.cc:6106
|
#19 0x5f9f5f9361dd in mysql_execute_command(THD*, bool) /src/mariadb/sql/sql_parse.cc:3950
|
#20 0x5f9f5f98729f in mysql_parse(THD*, char*, unsigned int, Parser_state*) /src/mariadb/sql/sql_parse.cc:7883
|
#21 0x5f9f5f90455c in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) /src/mariadb/sql/sql_parse.cc:1878
|
#22 0x5f9f5f8f8975 in do_command(THD*, bool) /src/mariadb/sql/sql_parse.cc:1417
|
#23 0x5f9f605f0a37 in do_handle_one_connection(CONNECT*, bool) /src/mariadb/sql/sql_connect.cc:1414
|
#24 0x5f9f605efac6 in handle_one_connection /src/mariadb/sql/sql_connect.cc:1326
|
#25 0x5f9f62cf14b5 in pfs_spawn_thread /src/mariadb/storage/perfschema/pfs.cc:2198
|
#26 0x7cda56c5f972 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:239
|
#27 0x7cda554a27f0 in start_thread nptl/pthread_create.c:448
|
 |
SUMMARY: AddressSanitizer: 32 byte(s) leaked in 2 allocation(s).
|
The issue is reproduced on main (e02f4d7e31), with ASAN and UBSAN enabled.
Attachments
Issue Links
- relates to
-
MDBF-1120 Add --cursor protocol (or ps-protocol) to UBSAN Debug builder
-
- Open
-