Kernel version: Linux version 5.19.16-200.fc36.x86_64 (mockbuild@bkernel01.iad2.fedoraproject.org) (gcc (GCC) 12.2.1 20220819 (Red Hat 12.2.1-2), GNU ld version 2.37-36.fc36) #1 SMP PREEMPT_DYNAMIC Sun Oct 16 22:50:04 UTC 2022
This also happens with the ODBC wrapper. Using a temporary table prevents this.
at /home/nayuta_mariadb/repo/mariadb-server/10.9/storage/spider/spd_direct_sql.cc:1640
#5 0x00007f939cd69073 in spider_direct_sql (initid=0x7f93900150d8, args=0x7f9390015098, is_null=0x7f9390015109 "", error=0x7f9390015108 "")
at /home/nayuta_mariadb/repo/mariadb-server/10.9/storage/spider/spd_udf.cc:29
#6 0x0000561188c9baf2 in udf_handler::val_int (this=0x7f9390015088, null_value=0x7f939d1cdad7 "") at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_udf.h:108
#7 0x0000561188c8e789 in Item_func_udf_int::val_int (this=0x7f9390014fe0) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/item_func.cc:3800
#8 0x0000561188acba6f in Type_handler::Item_send_longlong (this=0x56118a254de0 <type_handler_slonglong>, item=0x7f9390014fe0, protocol=0x7f9390001a78,
buf=0x7f939d1cdc20) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_type.cc:7496
#9 0x0000561188ad9d0e in Type_handler_longlong::Item_send (this=0x56118a254de0 <type_handler_slonglong>, item=0x7f9390014fe0, protocol=0x7f9390001a78,
buf=0x7f939d1cdc20) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_type.h:5743
#10 0x0000561188679610 in Item::send (this=0x7f9390014fe0, protocol=0x7f9390001a78, buffer=0x7f939d1cdc20)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/item.h:1232
#11 0x00005611886c35cb in Protocol::send_result_set_row (this=0x7f9390001a78, row_items=0x7f9390014b60)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/protocol.cc:1328
#12 0x0000561188783dbd in select_send::send_data (this=0x7f9390015ad0, items=...) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_class.cc:3105
#13 0x00005611888ceab9 in select_result_sink::send_data_with_check (this=0x7f9390015ad0, items=..., u=0x7f9390005890, sent=0)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_class.h:5721
#14 0x0000561188881fda in JOIN::exec_inner (this=0x7f9390015af8) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_select.cc:4673
#15 0x0000561188881813 in JOIN::exec (this=0x7f9390015af8) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_select.cc:4585
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_select.cc:5065
#17 0x0000561188871d5c in handle_select (thd=0x7f9390001468, lex=0x7f93900057b8, result=0x7f9390015ad0, setup_tables_done_option=0)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_select.cc:579
#18 0x0000561188816b87 in execute_sqlcom_select (thd=0x7f9390001468, all_tables=0x0) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_parse.cc:6261
#19 0x000056118880dabf in mysql_execute_command (thd=0x7f9390001468, is_called_from_prepared_stmt=false)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_parse.cc:3945
#20 0x000056118881bb67 in mysql_parse (thd=0x7f9390001468, rawbuf=0x7f93900147d0 "SELECT SPIDER_DIRECT_SQL('select 1 as 1', 'tbl_a', 'srv \"s_2_1\"')", length=65,
parser_state=0x7f939d1cf1f0) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_parse.cc:8023
#21 0x000056118880784a in dispatch_command (command=COM_QUERY, thd=0x7f9390001468, packet=0x7f939000c1d9 "", packet_length=65, blocking=true)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_parse.cc:1894
#22 0x000056118880619e in do_command (thd=0x7f9390001468, blocking=true) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_parse.cc:1407
#23 0x00005611889ed7c5 in do_handle_one_connection (connect=0x56118babe8d8, put_in_cache=true) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_connect.cc:1416
#24 0x00005611889ed52e in handle_one_connection (arg=0x56118babe8d8) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_connect.cc:1318
#25 0x0000561188f225be in pfs_spawn_thread (arg=0x56118ba84468) at /home/nayuta_mariadb/repo/mariadb-server/10.9/storage/perfschema/pfs.cc:2201
#26 0x00007f93b4948b43 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#27 0x00007f93b49d9bb4 in clone () from /lib/x86_64-linux-gnu/libc.so.6
Nayuta Yanagisawa (Inactive)
added a comment - - edited The stack trace produced by the above test case:
10.9 d86ad1f127fdc71e888e2e168b99f561f111a0b2
Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 97701.97743]
0x00007f93b4a5197d in ?? () from /lib/x86_64-linux-gnu/libc.so.6
(rr) bt
#0 0x00007f93b4a5197d in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x000056118894e1ff in MDL_key::mdl_key_init (this=0x7f939d1cd7c8, mdl_namespace_arg=MDL_key::TABLE, db=0x0, name_arg=0x0)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/mdl.h:429
#2 0x00005611889fd22f in MDL_request::init_with_source (this=0x7f939d1cd7a8, mdl_namespace=MDL_key::TABLE, db_arg=0x0, name_arg=0x0, mdl_type_arg=MDL_SHARED_WRITE,
mdl_duration_arg=MDL_TRANSACTION, src_file=0x7f939ce26ce0 "/home/nayuta_mariadb/repo/mariadb-server/10.9/sql/table.h", src_line=2246)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/mdl.cc:1010
#3 0x00007f939ccc6946 in TABLE_LIST::init_one_table (this=0x7f939d1cd320, db_arg=0x7f939d1cd338, table_name_arg=0x7f939d1cd348, alias_arg=0x0, lock_type_arg=TL_WRITE)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/table.h:2246
#4 0x00007f939cd67c58 in spider_direct_sql_body (initid=0x7f93900150d8, args=0x7f9390015098, is_null=0x7f9390015109 "", error=0x7f9390015108 "", bg=0 '\000')
at /home/nayuta_mariadb/repo/mariadb-server/10.9/storage/spider/spd_direct_sql.cc:1640
#5 0x00007f939cd69073 in spider_direct_sql (initid=0x7f93900150d8, args=0x7f9390015098, is_null=0x7f9390015109 "", error=0x7f9390015108 "")
at /home/nayuta_mariadb/repo/mariadb-server/10.9/storage/spider/spd_udf.cc:29
#6 0x0000561188c9baf2 in udf_handler::val_int (this=0x7f9390015088, null_value=0x7f939d1cdad7 "") at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_udf.h:108
#7 0x0000561188c8e789 in Item_func_udf_int::val_int (this=0x7f9390014fe0) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/item_func.cc:3800
#8 0x0000561188acba6f in Type_handler::Item_send_longlong (this=0x56118a254de0 <type_handler_slonglong>, item=0x7f9390014fe0, protocol=0x7f9390001a78,
buf=0x7f939d1cdc20) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_type.cc:7496
#9 0x0000561188ad9d0e in Type_handler_longlong::Item_send (this=0x56118a254de0 <type_handler_slonglong>, item=0x7f9390014fe0, protocol=0x7f9390001a78,
buf=0x7f939d1cdc20) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_type.h:5743
#10 0x0000561188679610 in Item::send (this=0x7f9390014fe0, protocol=0x7f9390001a78, buffer=0x7f939d1cdc20)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/item.h:1232
#11 0x00005611886c35cb in Protocol::send_result_set_row (this=0x7f9390001a78, row_items=0x7f9390014b60)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/protocol.cc:1328
#12 0x0000561188783dbd in select_send::send_data (this=0x7f9390015ad0, items=...) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_class.cc:3105
#13 0x00005611888ceab9 in select_result_sink::send_data_with_check (this=0x7f9390015ad0, items=..., u=0x7f9390005890, sent=0)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_class.h:5721
#14 0x0000561188881fda in JOIN::exec_inner (this=0x7f9390015af8) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_select.cc:4673
#15 0x0000561188881813 in JOIN::exec (this=0x7f9390015af8) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_select.cc:4585
#16 0x00005611888831d5 in mysql_select (thd=0x7f9390001468, tables=0x0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0,
select_options=2147486464, result=0x7f9390015ad0, unit=0x7f9390005890, select_lex=0x7f93900148c0)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_select.cc:5065
#17 0x0000561188871d5c in handle_select (thd=0x7f9390001468, lex=0x7f93900057b8, result=0x7f9390015ad0, setup_tables_done_option=0)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_select.cc:579
#18 0x0000561188816b87 in execute_sqlcom_select (thd=0x7f9390001468, all_tables=0x0) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_parse.cc:6261
#19 0x000056118880dabf in mysql_execute_command (thd=0x7f9390001468, is_called_from_prepared_stmt=false)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_parse.cc:3945
#20 0x000056118881bb67 in mysql_parse (thd=0x7f9390001468, rawbuf=0x7f93900147d0 "SELECT SPIDER_DIRECT_SQL('select 1 as 1', 'tbl_a', 'srv \"s_2_1\"')", length=65,
parser_state=0x7f939d1cf1f0) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_parse.cc:8023
#21 0x000056118880784a in dispatch_command (command=COM_QUERY, thd=0x7f9390001468, packet=0x7f939000c1d9 "", packet_length=65, blocking=true)
at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_parse.cc:1894
#22 0x000056118880619e in do_command (thd=0x7f9390001468, blocking=true) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_parse.cc:1407
#23 0x00005611889ed7c5 in do_handle_one_connection (connect=0x56118babe8d8, put_in_cache=true) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_connect.cc:1416
#24 0x00005611889ed52e in handle_one_connection (arg=0x56118babe8d8) at /home/nayuta_mariadb/repo/mariadb-server/10.9/sql/sql_connect.cc:1318
#25 0x0000561188f225be in pfs_spawn_thread (arg=0x56118ba84468) at /home/nayuta_mariadb/repo/mariadb-server/10.9/storage/perfschema/pfs.cc:2201
#26 0x00007f93b4948b43 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#27 0x00007f93b49d9bb4 in clone () from /lib/x86_64-linux-gnu/libc.so.6
The TABLE_LIST::init_one_table() is called previously, and there seems to be no need to call it again. So, simply removing the call will resolve the problem.
Nayuta Yanagisawa (Inactive)
added a comment - - edited One should not pass table_list.db and table_list.table_name to the function because it update the very members internally.
table_list.init_one_table(
&table_list.db, &table_list.table_name, 0, TL_WRITE);
The TABLE_LIST::init_one_table() is called previously, and there seems to be no need to call it again. So, simply removing the call will resolve the problem.
MTR test case:
--disable_query_log
--disable_result_log
--source ../../t/test_init.inc
--enable_result_log
--enable_query_log
--connection child2_1
) $CHILD2_1_ENGINE $CHILD2_1_CHARSET;
--connection master_1
--connection master_1
--connection child2_1
--disable_query_log
--disable_result_log
--source ../t/test_deinit.inc
--enable_query_log