Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.6, 11.8
Description
export UBSAN_OPTIONS=print_stacktrace=1:report_error_type=1 |
rm -Rf data tmp |
mkdir tmp |
./scripts/mariadb-install-db --no-defaults --force --auth-root-authentication-method=normal --basedir=${PWD} --tmpdir=${PWD}/tmp --datadir=${PWD}/data |
Leads to:
CS 10.6.21 2255be03952e0be7db764613956c5c66a6c1ab75 (Debug, UBASAN) |
/test/10.6_dbg_san/mysys/mf_qsort.c:131:35: runtime error: call to function sort_keys(st_key*, st_key*) through pointer to incorrect function type 'int (*)(const void *, const void *)'
|
/test/10.6_dbg_san/sql/sql_table.cc:1979: note: sort_keys(st_key*, st_key*) defined here
|
#0 0x5644b28daa82 in my_qsort /test/10.6_dbg_san/mysys/mf_qsort.c:131:35
|
#1 0x5644ad299354 in mysql_prepare_create_table(THD*, HA_CREATE_INFO*, Alter_info*, unsigned int*, handler*, st_key**, unsigned int*, int) /test/10.6_dbg_san/sql/sql_table.cc:3553:5
|
#2 0x5644ad2cc537 in mysql_create_frm_image(THD*, HA_CREATE_INFO*, Alter_info*, int, st_key**, unsigned int*, st_mysql_const_unsigned_lex_string*) /test/10.6_dbg_san/sql/sql_table.cc:4175:7
|
#3 0x5644ad2d6615 in create_table_impl(THD*, st_ddl_log_state*, st_ddl_log_state*, st_mysql_const_lex_string const&, st_mysql_const_lex_string const&, st_mysql_const_lex_string const&, st_mysql_const_lex_string const&, st_mysql_const_lex_string const&, DDL_options_st, HA_CREATE_INFO*, Alter_info*, int, bool*, st_key**, unsigned int*, st_mysql_const_unsigned_lex_string*) /test/10.6_dbg_san/sql/sql_table.cc:4494:11
|
#4 0x5644ad2cf2b0 in mysql_create_table_no_lock(THD*, st_ddl_log_state*, st_ddl_log_state*, Table_specification_st*, Alter_info*, bool*, int, TABLE_LIST*) /test/10.6_dbg_san/sql/sql_table.cc:4617:8
|
#5 0x5644ad2dccf8 in mysql_create_table(THD*, TABLE_LIST*, Table_specification_st*, Alter_info*) /test/10.6_dbg_san/sql/sql_table.cc:4839:7
|
#6 0x5644ad3c1e72 in Sql_cmd_create_table_like::execute(THD*) /test/10.6_dbg_san/sql/sql_table.cc:12328:12
|
#7 0x5644aca0133c in mysql_execute_command(THD*, bool) /test/10.6_dbg_san/sql/sql_parse.cc:6152:26
|
#8 0x5644ac953ed9 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /test/10.6_dbg_san/sql/sql_parse.cc:8194:18
|
#9 0x5644ac950a15 in bootstrap(st_mysql_file*) /test/10.6_dbg_san/sql/sql_parse.cc:1094:5
|
#10 0x5644abe09328 in mysqld_main(int, char**) /test/10.6_dbg_san/sql/mysqld.cc:5888:26
|
#11 0x5644abdf3863 in main /test/10.6_dbg_san/sql/main.cc:34:10
|
#12 0x14e50d62a1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
|
#13 0x14e50d62a28a in __libc_start_main csu/../csu/libc-start.c:360:3
|
#14 0x5644abd18034 in _start (/test/UBASAN_MD271124-mariadb-10.6.21-linux-x86_64-dbg/bin/mariadbd+0x3eb8034) (BuildId: 3cd87cd3953ac9cf3a930328b34dbd55d44c8146)
|
 |
SUMMARY: UndefinedBehaviorSanitizer: function-type-mismatch /test/10.6_dbg_san/mysys/mf_qsort.c:131:35
|
And
CS 10.6.21 2255be03952e0be7db764613956c5c66a6c1ab75 (Debug, UBASAN) |
SUMMARY: UndefinedBehaviorSanitizer: function-type-mismatch /test/11.8_dbg_san/storage/innobase/log/log0sync.cc:388:5
|
/test/11.8_dbg_san/mysys/mf_qsort.c:131:35: runtime error: call to function sort_key_cmp through pointer to incorrect function type 'int (*)(const void *, const void *, const void *)'
|
/test/11.8_dbg_san/storage/maria/ma_check.c:5655: note: sort_key_cmp defined here
|
#0 0x55f15ec8b199 in my_qsort2 /test/11.8_dbg_san/mysys/mf_qsort.c:131:35
|
#1 0x55f15caa0233 in write_index /test/11.8_dbg_san/storage/maria/ma_sort.c:857:3
|
#2 0x55f15ca9db28 in _ma_create_index_by_sort /test/11.8_dbg_san/storage/maria/ma_sort.c:262:9
|
#3 0x55f15ca5ce27 in maria_repair_by_sort /test/11.8_dbg_san/storage/maria/ma_check.c:4025:9
|
#4 0x55f15c641123 in ha_maria::repair(THD*, st_handler_check_param*, bool) /test/11.8_dbg_san/storage/maria/ha_maria.cc:1706:16
|
#5 0x55f15c64f4aa in ha_maria::enable_indexes(Bitmap<64u>, bool) /test/11.8_dbg_san/storage/maria/ha_maria.cc:2075:18
|
#6 0x55f15c657f31 in ha_maria::end_bulk_insert() /test/11.8_dbg_san/storage/maria/ha_maria.cc:2342:17
|
#7 0x55f15b1b2a4f in handler::ha_end_bulk_insert() /test/11.8_dbg_san/sql/handler.cc:5471:3
|
#8 0x55f1588f0729 in select_insert::prepare_eof() /test/11.8_dbg_san/sql/sql_insert.cc:4378:18
|
#9 0x55f1588fb70c in select_insert::send_eof() /test/11.8_dbg_san/sql/sql_insert.cc:4497:9
|
#10 0x55f1590b2d0d in do_select(JOIN*, Procedure*) /test/11.8_dbg_san/sql/sql_select.cc:23659:9
|
#11 0x55f1590a6c69 in JOIN::exec_inner() /test/11.8_dbg_san/sql/sql_select.cc:5037:50
|
#12 0x55f15909f35a in JOIN::exec() /test/11.8_dbg_san/sql/sql_select.cc:4820:8
|
#13 0x55f158f3d869 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*) /test/11.8_dbg_san/sql/sql_select.cc:5353:21
|
#14 0x55f158f38f27 in handle_select(THD*, LEX*, select_result*, unsigned long long) /test/11.8_dbg_san/sql/sql_select.cc:633:10
|
#15 0x55f158bde361 in mysql_execute_command(THD*, bool) /test/11.8_dbg_san/sql/sql_parse.cc:4663:16
|
#16 0x55f158b6acf9 in mysql_parse(THD*, char*, unsigned int, Parser_state*) /test/11.8_dbg_san/sql/sql_parse.cc:7901:18
|
#17 0x55f158b676df in bootstrap(st_mysql_file*) /test/11.8_dbg_san/sql/sql_parse.cc:1091:5
|
#18 0x55f157d783d5 in mysqld_main(int, char**) /test/11.8_dbg_san/sql/mysqld.cc:6104:26
|
#19 0x55f157d624d3 in main /test/11.8_dbg_san/sql/main.cc:34:10
|
#20 0x148db022a1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
|
#21 0x148db022a28a in __libc_start_main csu/../csu/libc-start.c:360:3
|
#22 0x55f157c86ca4 in _start (/test/UBASAN_MD271124-mariadb-11.8.0-linux-x86_64-dbg/bin/mariadbd+0x420dca4) (BuildId: f27fe1c9ec9e330ed9e1f77c95234779a142f25c)
|
Observed using UBSAN with Clang and LLMV 18.1.3:
sudo apt install clang llvm-18 llvm-18-linker-tools llvm-18-runtime llvm-18-tools llvm-18-dev libstdc++-14-dev llvm-dev llvm-17-linker-tools # llvm-17-linker-tools installs /usr/lib/llvm-17/lib/LLVMgold.so, which is needed for compilation, and LLVMgold.so is no longer included in LLVM 18 |
sudo ln -s /usr/lib/llvm-17/lib/LLVMgold.so /usr/lib/llvm-18/lib/LLVMgold.so |
...
|
export UBSAN_OPTIONS=print_stacktrace=1:report_error_type=1 |
Related helpful comment on 'function-type-mismatch' errors here.
Attachments
Issue Links
- is part of
-
MDEV-34348 MariaDB is violating clang-16 -Wcast-function-type-strict
- Closed