I used my fuzzing tool to test Mariadb , and found a bug that can result in an abortion.
Mariadb installation:
1) cd mariadb-10.5.9
2) mkdir build; cd build
3) cmake -DWITH_ASAN=ON -DWITH_ASAN_SCOPE=ON -DCMAKE_BUILD_TYPE=Debug ../
4) make -j8 && sudo make install
How to Repeat:
export ASAN_OPTIONS=detect_leaks=0
/usr/local/mysql/bin/mysqld_safe &
/usr/local/mysql/bin/mysql -uroot -p123456(your password)
MariaDB> drop database if exists test_db;
MariaDB> create database test_db;
MariaDB> use test_db;
MariaDB> source fuzz.sql;
I have simplified the content of fuzz.sql, and I hope fuzz.sql can help you reproduce the bug and fix it. In addition, I attach the failure report (which has its stack trace).
This bug looks similar to MDEV-25787, but their stack trace are totally different in my report. I hope you can judge whether they are different bugs.
Version: '10.5.13-MariaDB' socket: '/tmp/build-mariadb-server-10.5-asan.sock' port: 0 Source distribution
[New Thread 0x7fffd80af240 (LWP 788984)]
2021-08-13 17:37:50 3 [ERROR] mysqld: Index for table '/tmp/#sql-temptable-c09e3-3-4' is corrupt; try to repair it
2021-08-13 17:37:50 3 [ERROR] mysqld: Index for table '(temporary)' is corrupt; try to repair it
Thread 19 "mysqld" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd80af240 (LWP 788984)]
0x00000000016f91c3 in ha_maria::extra (this=0x6290000f43c8, operation=HA_EXTRA_NO_CACHE) at /home/dan/repos/mariadb-server-10.5/storage/maria/ha_maria.cc:2656
#0 0x00000000016f91c3 in ha_maria::extra (this=0x6290000f43c8, operation=HA_EXTRA_NO_CACHE) at /home/dan/repos/mariadb-server-10.5/storage/maria/ha_maria.cc:2656
old_trn = <optimized out>
tmp = <optimized out>
thd = <optimized out>
#1 0x0000000001576c99 in end_read_record (info=info@entry=0x7fffcf9ff100) at /home/dan/repos/mariadb-server-10.5/sql/records.cc:359
No locals.
#2 0x0000000000b97427 in st_join_table::cleanup (this=this@entry=0x7fffcf9ff038) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:13619
No locals.
#3 0x0000000000b746a6 in JOIN::cleanup (this=<optimized out>, this@entry=0x63300004abb0, full=true) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:14012
tab = 0x7fffcf9ff038
#4 0x0000000000b72fdc in JOIN::join_free (this=this@entry=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:13912
full = true
can_unlock = true
tmp_unit = <optimized out>
sl = <optimized out>
#5 0x0000000000b7188c in do_select (join=0x63300004abb0, procedure=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:20444
rc = 0
error = NESTED_LOOP_ERROR
res = <optimized out>
last_tab = <optimized out>
state = <optimized out>
join_tab = <optimized out>
end_select = <optimized out>
cleared_tables = <optimized out>
columns_list = <optimized out>
const_tables = <optimized out>
join_tab = <optimized out>
sort_tab = <optimized out>
#6 JOIN::exec_inner (this=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:4516
#9 0x0000000000b15a66 in handle_select (thd=thd@entry=0x62b00009a218, lex=<optimized out>, lex@entry=0x62b00009e138, result=<optimized out>, result@entry=0x63300004aaa8, setup_tables_done_option=<optimized out>, setup_tables_done_option@entry=0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:444
unit = <optimized out>
select_lex = 0x62b0000a19b0
res = <optimized out>
#10 0x0000000000cd9a0e in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_table.cc:12158
alter_info = {drop_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac2d0, elements = 0}, <No data fields>}, alter_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac2e8, elements = 0}, <No data fields>}, key_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac300, elements = 0}, <No data fields>}, alter_rename_key_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac318, elements = 0}, <No data fields>}, create_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x6330000650b0, last = 0x6330000650b0, elements = 1}, <No data fields>}, check_constraint_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac348, elements = 0}, <No data fields>}, flags = 0, partition_flags = 0, keys_onoff = Alter_info::LEAVE_AS_IS, partition_names = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac378, elements = 0}, <No data fields>}, num_parts = 0, requested_algorithm = Alter_info::ALTER_TABLE_ALGORITHM_NONE, requested_lock = Alter_info::ALTER_TABLE_LOCK_DEFAULT}
lex = 0x62b00009e138
select_lex = 0x62b00009e148
first_table = 0x62b0000a12c0
create_table = 0x62b0000a12c0
select_tables = 0x63300003f718
unit = <optimized out>
res = 0
used_engine = <optimized out>
link_to_local = true
wsrep_error_label = <optimized out>
#11 0x0000000000a91c72 in mysql_execute_command (thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:6056
#14 0x0000000000a860ed in do_command (thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:1370
net = 0x62b00009a498
packet = <optimized out>
packet_length = <optimized out>
command = COM_QUERY
return_value = <optimized out>
#15 0x0000000000df2464 in do_handle_one_connection (connect=<optimized out>, put_in_cache=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_connect.cc:1418
create_user = true
thr_create_utime = <optimized out>
thd = 0x6290000f43c8
#16 0x0000000000df1fa9 in handle_one_connection (arg=arg@entry=0x608000079538) at /home/dan/repos/mariadb-server-10.5/sql/sql_connect.cc:1312
connect = 0x608000079538
#17 0x00000000018c1bcb in pfs_spawn_thread (arg=0x61500000a318) at /home/dan/repos/mariadb-server-10.5/storage/perfschema/pfs.cc:2201
#19 0x00007ffff7587353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
(gdb) bt
#0 0x00000000016f91c3 in ha_maria::extra (this=0x6290000f43c8, operation=HA_EXTRA_NO_CACHE) at /home/dan/repos/mariadb-server-10.5/storage/maria/ha_maria.cc:2656
#1 0x0000000001576c99 in end_read_record (info=info@entry=0x7fffcf9ff100) at /home/dan/repos/mariadb-server-10.5/sql/records.cc:359
#2 0x0000000000b97427 in st_join_table::cleanup (this=this@entry=0x7fffcf9ff038) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:13619
#3 0x0000000000b746a6 in JOIN::cleanup (this=<optimized out>, this@entry=0x63300004abb0, full=true) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:14012
#4 0x0000000000b72fdc in JOIN::join_free (this=this@entry=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:13912
#5 0x0000000000b7188c in do_select (join=0x63300004abb0, procedure=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:20444
#6 JOIN::exec_inner (this=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:4516
#7 0x0000000000b6eb57 in JOIN::exec (this=this@entry=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:4296
#9 0x0000000000b15a66 in handle_select (thd=thd@entry=0x62b00009a218, lex=<optimized out>, lex@entry=0x62b00009e138, result=<optimized out>, result@entry=0x63300004aaa8, setup_tables_done_option=<optimized out>, setup_tables_done_option@entry=0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:444
#10 0x0000000000cd9a0e in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_table.cc:12158
#11 0x0000000000a91c72 in mysql_execute_command (thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:6056
#12 0x0000000000a85420 in mysql_parse (thd=0x62b00009a218, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:8100
#13 0x0000000000a7da4d in dispatch_command (command=<optimized out>, thd=0x62b00009a218, packet=<optimized out>, packet_length=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:1891
#14 0x0000000000a860ed in do_command (thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:1370
#15 0x0000000000df2464 in do_handle_one_connection (connect=<optimized out>, put_in_cache=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_connect.cc:1418
#16 0x0000000000df1fa9 in handle_one_connection (arg=arg@entry=0x608000079538) at /home/dan/repos/mariadb-server-10.5/sql/sql_connect.cc:1312
#17 0x00000000018c1bcb in pfs_spawn_thread (arg=0x61500000a318) at /home/dan/repos/mariadb-server-10.5/storage/perfschema/pfs.cc:2201
#18 0x00007ffff78ad299 in start_thread (arg=0x7fffd80af240) at pthread_create.c:481
#19 0x00007ffff7587353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Zuming Jiang thanks for the bug report. It did segfault. The backtrace you added was really different, a bit munged, and I couldn't make sense of the rather disparate functions that where there. As such I've just relabeled this to what I could see using your test case to generate the segfault.
Daniel Black
added a comment - Zuming Jiang thanks for the bug report. It did segfault. The backtrace you added was really different, a bit munged, and I couldn't make sense of the rather disparate functions that where there. As such I've just relabeled this to what I could see using your test case to generate the segfault.
Confirmed:
10.5.13-0268b871228
CMakeCache.txt:WITH_ASAN:BOOL=ON
CMakeCache.txt:WITH_ASAN_SCOPE:BOOL=ON
CMAKE_CXX_COMPILER:STRING=/usr/lib64/ccache/clang++
CMAKE_C_COMPILER:STRING=/usr/lib64/ccache/clang
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
$ /usr/lib64/ccache/clang++ --version
clang version 12.0.0 (Fedora 12.0.0-2.fc34)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Version: '10.5.13-MariaDB' socket: '/tmp/build-mariadb-server-10.5-asan.sock' port: 0 Source distribution
[New Thread 0x7fffd80af240 (LWP 788984)]
2021-08-13 17:37:50 3 [ERROR] mysqld: Index for table '/tmp/#sql-temptable-c09e3-3-4' is corrupt; try to repair it
2021-08-13 17:37:50 3 [ERROR] mysqld: Index for table '(temporary)' is corrupt; try to repair it
Thread 19 "mysqld" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd80af240 (LWP 788984)]
0x00000000016f91c3 in ha_maria::extra (this=0x6290000f43c8, operation=HA_EXTRA_NO_CACHE) at /home/dan/repos/mariadb-server-10.5/storage/maria/ha_maria.cc:2656
Thread 19 (Thread 0x7fffd80af240 (LWP 788984) "mysqld"):
#0 0x00000000016f91c3 in ha_maria::extra (this=0x6290000f43c8, operation=HA_EXTRA_NO_CACHE) at /home/dan/repos/mariadb-server-10.5/storage/maria/ha_maria.cc:2656
old_trn = <optimized out>
tmp = <optimized out>
thd = <optimized out>
#1 0x0000000001576c99 in end_read_record (info=info@entry=0x7fffcf9ff100) at /home/dan/repos/mariadb-server-10.5/sql/records.cc:359
No locals.
#2 0x0000000000b97427 in st_join_table::cleanup (this=this@entry=0x7fffcf9ff038) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:13619
No locals.
#3 0x0000000000b746a6 in JOIN::cleanup (this=<optimized out>, this@entry=0x63300004abb0, full=true) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:14012
tab = 0x7fffcf9ff038
#4 0x0000000000b72fdc in JOIN::join_free (this=this@entry=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:13912
full = true
can_unlock = true
tmp_unit = <optimized out>
sl = <optimized out>
#5 0x0000000000b7188c in do_select (join=0x63300004abb0, procedure=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:20444
rc = 0
error = NESTED_LOOP_ERROR
res = <optimized out>
last_tab = <optimized out>
state = <optimized out>
join_tab = <optimized out>
end_select = <optimized out>
cleared_tables = <optimized out>
columns_list = <optimized out>
const_tables = <optimized out>
join_tab = <optimized out>
sort_tab = <optimized out>
#6 JOIN::exec_inner (this=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:4516
columns_list = 0xc660000958e
trace_wrapper = {<Json_writer_struct> = {my_writer = <optimized out>, context = {writer = <optimized out>}, closed = <optimized out>}, <No data fields>}
trace_exec = {<Json_writer_struct> = {my_writer = <optimized out>, context = {writer = <optimized out>}, closed = <optimized out>}, <No data fields>}
trace_steps = {<Json_writer_struct> = {my_writer = <optimized out>, context = {writer = <optimized out>}, closed = <optimized out>}, <No data fields>}
#7 0x0000000000b6eb57 in JOIN::exec (this=this@entry=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:4296
No locals.
#8 0x0000000000b162e5 in mysql_select (thd=<optimized out>, thd@entry=0x62b00009a218, tables=<optimized out>, fields=<optimized out>, conds=<optimized out>, og_num=<optimized out>, order=<optimized out>, group=0x0, having=0x0, proc_param=0x0, select_options=<optimized out>, result=0x63300004aaa8, unit=0x62b00009e200, select_lex=0x62b0000a19b0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:4772
free_join = true
err = <optimized out>
join = 0x63300004abb0
#9 0x0000000000b15a66 in handle_select (thd=thd@entry=0x62b00009a218, lex=<optimized out>, lex@entry=0x62b00009e138, result=<optimized out>, result@entry=0x63300004aaa8, setup_tables_done_option=<optimized out>, setup_tables_done_option@entry=0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:444
unit = <optimized out>
select_lex = 0x62b0000a19b0
res = <optimized out>
#10 0x0000000000cd9a0e in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_table.cc:12158
result = 0x63300004aaa8
create_info = {<HA_CREATE_INFO> = {<Table_scope_and_contents_source_st> = {<Table_scope_and_contents_source_pod_st> = {alter_table_convert_to_charset = 0x0, tabledef_version = {str = 0x6330000658b0 "\\\375RU\374\t\021\353\263/<X¥ʀ", length = 16}, connect_string = {str = 0x0, length = 0}, comment = {str = 0x6190000cb300 "", length = 0}, alias = {str = 0x62b0000a12b0 "t_d33ya", length = 7}, password = 0x0, tablespace = 0x0, data_file_name = 0x0, index_file_name = 0x0, max_rows = 0, min_rows = 0, auto_increment_value = 0, table_options = 8, avg_row_length = 0, used_fields = 0, key_block_size = 0, expression_length = 0, field_check_constraints = 0, stats_sample_pages = 0, null_bits = 1, options = 0, merge_insert_method = 0, extra_size = 16, db_type = 0x615000001c18, row_type = ROW_TYPE_DEFAULT, transactional = HA_CHOICE_UNDEF, storage_media = HA_SM_DEFAULT, page_checksum = HA_CHOICE_UNDEF, option_list = 0x0, stats_auto_recalc = HA_STATS_AUTO_RECALC_DEFAULT, varchar = false, sequence = false, check_constraint_list = 0x7fffd80ac348, option_struct = 0x633000065888, fields_option_struct = 0x0, indexes_option_struct = 0x0, table = 0x0, pos_in_locked_tables = 0x0, merge_list = 0x0, mdl_ticket = 0x0, table_was_deleted = false, seq_create_info = 0x0}, vers_info = {<Table_period_info> = {<Sql_alloc> = {<No data fields>}, name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x2589f80 <str> "SYSTEM_TIME", length = 11}, <No data fields>}, <No data fields>}, period = {start = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, end = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}}, create_if_not_exists = false, constr = 0x0, unique_keys = 0}, as_row = {start = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, end = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}}, versioned_fields = false, unversioned_fields = false}, period_info = {<Sql_alloc> = {<No data fields>}, name = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, period = {start = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}, end = {<Lex_cstring> = {<st_mysql_const_lex_string> = {str = 0x0, length = 0}, <No data fields>}, <No data fields>}}, create_if_not_exists = false, constr = 0x0, unique_keys = 0}}, <Schema_specification_st> = {default_table_charset = 0x329d5c0 <my_charset_latin1>, schema_comment = 0x0}, alter_info = 0x7fffd80ac2d0}, <DDL_options_st> = {m_options = DDL_options_st::OPT_NONE}, <No data fields>}
alter_info = {drop_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac2d0, elements = 0}, <No data fields>}, alter_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac2e8, elements = 0}, <No data fields>}, key_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac300, elements = 0}, <No data fields>}, alter_rename_key_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac318, elements = 0}, <No data fields>}, create_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x6330000650b0, last = 0x6330000650b0, elements = 1}, <No data fields>}, check_constraint_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac348, elements = 0}, <No data fields>}, flags = 0, partition_flags = 0, keys_onoff = Alter_info::LEAVE_AS_IS, partition_names = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x300e0c0 <end_of_list>, last = 0x7fffd80ac378, elements = 0}, <No data fields>}, num_parts = 0, requested_algorithm = Alter_info::ALTER_TABLE_ALGORITHM_NONE, requested_lock = Alter_info::ALTER_TABLE_LOCK_DEFAULT}
lex = 0x62b00009e138
select_lex = 0x62b00009e148
first_table = 0x62b0000a12c0
create_table = 0x62b0000a12c0
select_tables = 0x63300003f718
unit = <optimized out>
res = 0
used_engine = <optimized out>
link_to_local = true
wsrep_error_label = <optimized out>
#11 0x0000000000a91c72 in mysql_execute_command (thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:6056
ots = {ctx = 0x62b00009dde8, traceable = false}
up_result = 0
res = 0
lex = 0x62b00009e138
select_lex = 0x62b0000a19b0
first_table = 0x62b0000a12c0
have_table_map_for_update = <optimized out>
unit = 0x62b00009e200
all_tables = <optimized out>
trace_command = {<Json_writer_struct> = {my_writer = <optimized out>, context = {writer = <optimized out>}, closed = <optimized out>}, <No data fields>}
trace_command_steps = {<Json_writer_struct> = {my_writer = <optimized out>, context = {writer = <optimized out>}, closed = <optimized out>}, <No data fields>}
rpl_filter = <optimized out>
orig_binlog_format = <optimized out>
orig_current_stmt_binlog_format = <optimized out>
error = <optimized out>
wsrep_error_label = <optimized out>
#12 0x0000000000a85420 in mysql_parse (thd=0x62b00009a218, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:8100
found_semicolon = <optimized out>
error = <optimized out>
lex = 0x62b00009e138
err = <optimized out>
#13 0x0000000000a7da4d in dispatch_command (command=<optimized out>, thd=0x62b00009a218, packet=<optimized out>, packet_length=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:1891
parser_state = {m_lip = {lookahead_token = -1, lookahead_yylval = 0x0, m_thd = 0x62b00009a218, m_ptr = 0x63200011e80d "\a", m_tok_start = 0x63200011e80d "\a", m_tok_end = 0x63200011e80d "\a", m_end_of_query = 0x63200011e80c "", m_tok_start_prev = 0x63200011e80c "", m_buf = 0x632000108838 "create table t_d33ya as \nselect \n 1\n from \n (select distinct \n ref_1.c_fx_2 as c0, \n ref_1.c_fx_2 as c1, \n ref_1.c_fx_2 as c2, \n ref_1.c_fx_2 as c3, \n "..., m_buf_length = 90068, m_echo = true, m_echo_saved = 27, m_cpp_buf = 0x632000120838 "create table t_d33ya as \nselect \n 1\n from \n (select distinct \n ref_1.c_fx_2 as c0, \n ref_1.c_fx_2 as c1, \n ref_1.c_fx_2 as c2, \n ref_1.c_fx_2 as c3, \n "..., m_cpp_ptr = 0x63200013680c "", m_cpp_tok_start = 0x63200013680c "", m_cpp_tok_start_prev = 0x63200013680c "", m_cpp_tok_end = 0x63200013680c "", m_body_utf8 = 0x0, m_body_utf8_ptr = 0x0, m_cpp_utf8_processed_ptr = 0x0, next_state = MY_LEX_END, found_semicolon = 0x0, ignore_space = false, stmt_prepare_mode = false, multi_statements = true, yylineno = 2682, m_digest = 0x0, in_comment = NO_COMMENT, in_comment_saved = NO_COMMENT, m_cpp_text_start = 0x632000136806 "subq_0", m_cpp_text_end = 0x63200013680c "", m_underscore_cs = 0x0}, m_yacc = {yacc_yyss = 0x0, yacc_yyvs = 0x0, m_set_signal_info = {m_item = {0x0 <repeats 12 times>}}, m_lock_type = TL_READ_DEFAULT, m_mdl_type = MDL_SHARED_READ}, m_digest_psi = 0x0}
packet_end = <optimized out>
net = <optimized out>
drop_more_results = <optimized out>
do_end_of_statement = true
error = false
#14 0x0000000000a860ed in do_command (thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:1370
net = 0x62b00009a498
packet = <optimized out>
packet_length = <optimized out>
command = COM_QUERY
return_value = <optimized out>
#15 0x0000000000df2464 in do_handle_one_connection (connect=<optimized out>, put_in_cache=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_connect.cc:1418
create_user = true
thr_create_utime = <optimized out>
thd = 0x6290000f43c8
#16 0x0000000000df1fa9 in handle_one_connection (arg=arg@entry=0x608000079538) at /home/dan/repos/mariadb-server-10.5/sql/sql_connect.cc:1312
connect = 0x608000079538
#17 0x00000000018c1bcb in pfs_spawn_thread (arg=0x61500000a318) at /home/dan/repos/mariadb-server-10.5/storage/perfschema/pfs.cc:2201
typed_arg = 0x61500000a318
klass = <optimized out>
pfs = <optimized out>
user_start_routine = 0xdf1ec0 <handle_one_connection(void*)>
user_arg = 0x608000079538
#18 0x00007ffff78ad299 in start_thread (arg=0x7fffd80af240) at pthread_create.c:481
ret = <optimized out>
pd = 0x7fffd80af240
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140736817984064, 9127910844683686663, 140737488339038, 140737488339039, 0, 140736817984064, -9127834814419922169, -9127893090468719865}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#19 0x00007ffff7587353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
(gdb) bt
#0 0x00000000016f91c3 in ha_maria::extra (this=0x6290000f43c8, operation=HA_EXTRA_NO_CACHE) at /home/dan/repos/mariadb-server-10.5/storage/maria/ha_maria.cc:2656
#1 0x0000000001576c99 in end_read_record (info=info@entry=0x7fffcf9ff100) at /home/dan/repos/mariadb-server-10.5/sql/records.cc:359
#2 0x0000000000b97427 in st_join_table::cleanup (this=this@entry=0x7fffcf9ff038) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:13619
#3 0x0000000000b746a6 in JOIN::cleanup (this=<optimized out>, this@entry=0x63300004abb0, full=true) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:14012
#4 0x0000000000b72fdc in JOIN::join_free (this=this@entry=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:13912
#5 0x0000000000b7188c in do_select (join=0x63300004abb0, procedure=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:20444
#6 JOIN::exec_inner (this=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:4516
#7 0x0000000000b6eb57 in JOIN::exec (this=this@entry=0x63300004abb0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:4296
#8 0x0000000000b162e5 in mysql_select (thd=<optimized out>, thd@entry=0x62b00009a218, tables=<optimized out>, fields=<optimized out>, conds=<optimized out>, og_num=<optimized out>, order=<optimized out>, group=0x0, having=0x0, proc_param=0x0, select_options=<optimized out>, result=0x63300004aaa8, unit=0x62b00009e200, select_lex=0x62b0000a19b0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:4772
#9 0x0000000000b15a66 in handle_select (thd=thd@entry=0x62b00009a218, lex=<optimized out>, lex@entry=0x62b00009e138, result=<optimized out>, result@entry=0x63300004aaa8, setup_tables_done_option=<optimized out>, setup_tables_done_option@entry=0) at /home/dan/repos/mariadb-server-10.5/sql/sql_select.cc:444
#10 0x0000000000cd9a0e in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_table.cc:12158
#11 0x0000000000a91c72 in mysql_execute_command (thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:6056
#12 0x0000000000a85420 in mysql_parse (thd=0x62b00009a218, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:8100
#13 0x0000000000a7da4d in dispatch_command (command=<optimized out>, thd=0x62b00009a218, packet=<optimized out>, packet_length=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:1891
#14 0x0000000000a860ed in do_command (thd=0x62b00009a218) at /home/dan/repos/mariadb-server-10.5/sql/sql_parse.cc:1370
#15 0x0000000000df2464 in do_handle_one_connection (connect=<optimized out>, put_in_cache=<optimized out>) at /home/dan/repos/mariadb-server-10.5/sql/sql_connect.cc:1418
#16 0x0000000000df1fa9 in handle_one_connection (arg=arg@entry=0x608000079538) at /home/dan/repos/mariadb-server-10.5/sql/sql_connect.cc:1312
#17 0x00000000018c1bcb in pfs_spawn_thread (arg=0x61500000a318) at /home/dan/repos/mariadb-server-10.5/storage/perfschema/pfs.cc:2201
#18 0x00007ffff78ad299 in start_thread (arg=0x7fffd80af240) at pthread_create.c:481
#19 0x00007ffff7587353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) p *this
$1 = (ha_maria) {<handler> = {<Sql_alloc> = {<No data fields>}, _vptr$handler = 0x2f49930 <vtable for ha_maria+16>, table_share = 0x7fffcfc3cc08, table = 0x7fffcfc3c838, cached_table_flags = 176665231764881, estimation_rows_to_insert = 0, lookup_handler = 0x6290000f43c8, ht = 0x615000001498, ref = 0x0, dup_ref = 0x0, lookup_buffer = 0x0, stats = {data_file_length = 0, max_data_file_length = 0, index_file_length = 0, max_index_file_length = 0, delete_length = 0, auto_increment_value = 0, records = 2, deleted = 0, mean_rec_length = 0, create_time = 0, check_time = 0, update_time = 0, block_size = 8192, checksum = 0, checksum_null = false, mrr_length_per_rec = 0}, mrr_iter = 0x0, mrr_funcs = {get_key_info = 0x0, init = 0x0, next = 0x0, skip_record = 0x0, skip_index_tuple = 0x0}, multi_range_buffer = 0x0, ranges_in_seq = 0, mrr_cur_range = {start_key = {key = 0x0, length = 0, keypart_map = 0, flag = HA_READ_KEY_EXACT}, end_key = {key = 0x0, length = 0, keypart_map = 0, flag = HA_READ_KEY_EXACT}, ptr = 0x0, range_flag = 0}, save_end_range = {key = 0x0, length = 0, keypart_map = 0, flag = HA_READ_KEY_EXACT}, end_range = 0x0, range_key_part = 0x0, key_compare_result_on_equal = 0, mrr_is_output_sorted = false, mrr_have_range = false, eq_range = false, internal_tmp_table = true, implicit_emptied = false, mark_trx_read_write_done = false, check_table_binlog_row_based_done = false, check_table_binlog_row_based_result = false, in_range_check_pushed_down = false, lookup_errkey = 4294967295, errkey = 4294967295, key_used_on_scan = 64, active_index = 64, keyread = 64, ref_length = 8, ft_handler = 0x0, inited = handler::NONE, pre_inited = handler::NONE, pushed_cond = 0x0, next_insert_id = 0, insert_id_for_cur_row = 0, rows_read = 0, rows_tmp_read = 0, rows_changed = 0, index_rows_read = {0 <repeats 65 times>}, copy_info = {records = 0, touched = 0, copied = 0, deleted = 0, updated = 0}, tracker = 0x0, pushed_idx_cond = 0x0, pushed_idx_cond_keyno = 64, pushed_rowid_filter = 0x0, rowid_filter_is_active = false, auto_inc_interval_for_cur_row = {interval_min = 0, interval_values = 0, interval_max = 0, next = 0x0}, auto_inc_intervals_count = 0, m_psi = 0x0, m_psi_batch_mode = handler::PSI_BATCH_MODE_NONE, m_psi_numrows = 0, m_psi_locker = 0x0, m_psi_locker_state = {m_flags = 0, m_io_operation = PSI_TABLE_FETCH_ROW, m_table = 0x0, m_table_share = 0x0, m_thread = 0x0, m_timer_start = 0, m_timer = 0x0, m_wait = 0x0, m_index = 0}, row_logging = false, row_logging_init = false, row_logging_has_trans = false, m_lock_type = 2, ha_share = 0x7fffcfc3d080}, file = 0x0, int_table_flags = 176665231764881, remember_pos = 0, data_file_name = 0x0, index_file_name = 0x0, data_file_type = STATIC_RECORD, can_enable_indexes = false, bulk_insert_single_undo = 0 '\000', ds_mrr = {key_buffer = 0x0, primary_file = 0x0, table = 0x0, secondary_file = 0x0, rowid_filter = 0x0, keyno = 0, is_mrr_assoc = false, reader_factory = {ordered_rndpos_reader = {<Mrr_reader> = {_vptr$Mrr_reader = 0x2dd94d0 <vtable for Mrr_ordered_rndpos_reader+16>}, file = 0x0, index_reader = 0x0, index_rowid = 0x0, index_reader_exhausted = false, index_reader_needs_refill = false, is_mrr_assoc = false, last_identical_rowid = 0x0, rowid_buffer = 0x0, rowid_filter = 0x0}, ordered_index_reader = {<Mrr_index_reader> = {<Mrr_reader> = {_vptr$Mrr_reader = 0x2dd9570 <vtable for Mrr_ordered_index_reader+16>}, file = 0x0}, kv_it = {owner = 0x0, identical_key_it = {pos = 0x0, buf = 0x0, read_ptr1 = 0x0, read_ptr2 = 0x0}, last_identical_key_ptr = 0x0, get_next_row = false}, scanning_key_val_iter = false, key_buffer = 0x0, buf_manager = 0x0, keypar = {key_tuple_length = 0, key_tuple_map = 0, key_size_in_keybuf = 0, use_key_pointers = false, index_ranges_unique = false}, is_mrr_assoc = false, mrr_funcs = {get_key_info = 0x0, init = 0x0, next = 0x0, skip_record = 0x0, skip_index_tuple = 0x0}, mrr_iter = 0x0, source_exhausted = false, support_scan_interruptions = false, saved_rowid = 0x0, have_saved_rowid = false, saved_key_tuple = 0x0, saved_primary_key = 0x0, read_was_interrupted = false}, simple_index_reader = {<Mrr_index_reader> = {<Mrr_reader> = {_vptr$Mrr_reader = 0x2dd96f0 <vtable for Mrr_simple_index_reader+16>}, file = 0x0}, <No data fields>}}, strategy = 0x0, strategy_exhausted = false, index_strategy = 0x0, full_buf = 0x0, full_buf_end = 0x0, rowid_buffer_end = 0x0, forward_key_buf = {<Lifo_buffer> = {_vptr$Lifo_buffer = 0x2f4b0f0 <vtable for Forward_lifo_buffer+16>, size1 = 0, size2 = 0, write_ptr1 = 0x0, write_ptr2 = 0x0, read_ptr1 = 0x0, read_ptr2 = 0x0, start = 0x0, end = 0x0}, pos = 0x0}, backward_key_buf = {<Lifo_buffer> = {_vptr$Lifo_buffer = 0x2f4b190 <vtable for Backward_lifo_buffer+16>, size1 = 0, size2 = 0, write_ptr1 = 0x0, write_ptr2 = 0x0, read_ptr1 = 0x0, read_ptr2 = 0x0, start = 0x0, end = 0x0}, pos = 0x0}, rowid_buffer = {<Lifo_buffer> = {_vptr$Lifo_buffer = 0x2f4b0f0 <vtable for Forward_lifo_buffer+16>, size1 = 0, size2 = 0, write_ptr1 = 0x0, write_ptr2 = 0x0, read_ptr1 = 0x0, read_ptr2 = 0x0, start = 0x0, end = 0x0}, pos = 0x0}, buf_manager = {arg = 0x0, redistribute_buffer_space = 0x0, reset_buffer_sizes = 0x0}}}
(gdb) list
2651
2652 int ha_maria::extra(enum ha_extra_function operation)
2653 {
2654 int tmp;
2655 TRN *old_trn= file->trn;
2656 if ((specialflag & SPECIAL_SAFE_MODE) && operation == HA_EXTRA_KEYREAD)
2657 return 0;
2658 #ifdef NOT_USED
2659 if (operation == HA_EXTRA_MMAP && !opt_maria_use_mmap)
2660 return 0;
(gdb) p operation
$2 = HA_EXTRA_NO_CACHE
(gdb) p file
$3 = (MARIA_HA *) 0x0