[MDEV-29008] Server crash or assertion `field' failed in spider_db_open_item_ident / group by handler Created: 2022-07-02  Updated: 2022-12-09  Resolved: 2022-08-16

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - Spider
Affects Version/s: 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9, 10.10
Fix Version/s: 10.3.37, 10.4.27, 10.5.18, 10.6.10, 10.7.6, 10.8.5, 10.9.3

Type: Bug Priority: Critical
Reporter: Elena Stepanova Assignee: Nayuta Yanagisawa (Inactive)
Resolution: Fixed Votes: 0
Labels: None


 Description   

it may be related to the commit da6d18aa7af described in MDEV-27245. I didn't check whether the patch addresses the issue.

--source plugin/spider/spider/include/init_spider.inc
 
SET spider_same_server_link= on;
eval create server s foreign data wrapper mysql options (host "127.0.0.1", database "test", user "root", port $MASTER_MYPORT);
 
CREATE TABLE t (a INT, b INT);
INSERT INTO t VALUES (1,2),(3,4);
CREATE TABLE t_spider (a INT, b INT) ENGINE=SPIDER COMMENT = "wrapper 'mysql', srv 's', table 't'";
 
SELECT MIN(t2.a) AS f1, t1.b AS f2 FROM t_spider AS t1 JOIN t_spider AS t2 GROUP BY f2 ORDER BY f1, f2;
 
# Cleanup
DROP TABLE t_spider, t;
 
--source plugin/spider/spider/include/deinit_spider.inc

10.3 990cde80 debug

mysqld: /data/src/10.3/storage/spider/spd_db_conn.cc:9119: int spider_db_open_item_ident(Item_ident*, ha_spider*, spider_string*, const char*, uint, uint, bool, spider_fields*): Assertion `field' failed.
220702 16:58:45 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f5ff64a7662 in __GI___assert_fail (assertion=0x7f5ff043a475 "field", file=0x7f5ff04383e8 "/data/src/10.3/storage/spider/spd_db_conn.cc", line=9119, function=0x7f5ff043a480 "int spider_db_open_item_ident(Item_ident*, ha_spider*, spider_string*, const char*, uint, uint, bool, spider_fields*)") at assert.c:101
No locals.
#8  0x00007f5ff032d9aa in spider_db_open_item_ident (item_ident=0x7f5fe0017f18, spider=0x7f5fe01064f8, str=0x7f5fe00d0978, alias=0x0, alias_length=0, dbton_id=0, use_fields=true, fields=0x7f5fe010a010) at /data/src/10.3/storage/spider/spd_db_conn.cc:9119
        field_chain = 0x7f5fe010a360
        field_holder = 0x7f5fe00f4ef0
        field = 0x0
        error_num = 21997
        field_name_length = -1456724209
        share = 0x7f5fe00c3f20
        _db_stack_frame_ = {func = 0x7f5ff043a4f6 "spider_db_open_item_field", file = 0x7f5ff04383e8 "/data/src/10.3/storage/spider/spd_db_conn.cc", level = 2147483663, line = -1, prev = 0x7f5ff04cd2b0}
        __PRETTY_FUNCTION__ = "int spider_db_open_item_ident(Item_ident*, ha_spider*, spider_string*, const char*, uint, uint, bool, spider_fields*)"
#9  0x00007f5ff032e1a4 in spider_db_open_item_field (item_field=0x7f5fe0017f18, spider=0x7f5fe00c2228, str=0x7f5fe00d0978, alias=0x0, alias_length=0, dbton_id=0, use_fields=true, fields=0x7f5fe010a010) at /data/src/10.3/storage/spider/spd_db_conn.cc:9240
        error_num = 21997
        field = 0x7f5fe010c140
        share = 0x7f5fe00c3f20
        _db_stack_frame_ = {func = 0x7f5ff043a332 "spider_db_print_item_type", file = 0x7f5ff04383e8 "/data/src/10.3/storage/spider/spd_db_conn.cc", level = 2147483662, line = 9240, prev = 0x7f5ff04cd340}
        __PRETTY_FUNCTION__ = "int spider_db_open_item_field(Item_field*, ha_spider*, spider_string*, const char*, uint, uint, bool, spider_fields*)"
#10 0x00007f5ff032ccfc in spider_db_print_item_type (item=0x7f5fe0017f18, field=0x0, spider=0x7f5fe00c2228, str=0x7f5fe00d0978, alias=0x0, alias_length=0, dbton_id=0, use_fields=true, fields=0x7f5fe010a010) at /data/src/10.3/storage/spider/spd_db_conn.cc:8880
        _db_stack_frame_ = {func = 0x7f5ff04509c8 "spider_mbase_handler::append_order_by", file = 0x7f5ff04492d8 "/data/src/10.3/storage/spider/spd_db_mysql.cc", level = 2147483661, line = 8880, prev = 0x7f5ff04cd3e0}
#11 0x00007f5ff0421919 in spider_mbase_handler::append_order_by (this=0x7f5fe00d0920, order=0x7f5fe0014870, str=0x7f5fe00d0978, alias=0x0, alias_length=0, use_fields=true, fields=0x7f5fe010a010) at /data/src/10.3/storage/spider/spd_db_mysql.cc:14536
        error_num = 0
        _db_stack_frame_ = {func = 0x7f5ff0450998 "spider_mbase_handler::append_order_by_part", file = 0x7f5ff04492d8 "/data/src/10.3/storage/spider/spd_db_mysql.cc", level = 2147483660, line = -1, prev = 0x7f5ff04cd470}
#12 0x00007f5ff04217ba in spider_mbase_handler::append_order_by_part (this=0x7f5fe00d0920, order=0x7f5fe0014700, alias=0x0, alias_length=0, use_fields=true, fields=0x7f5fe010a010, sql_type=1) at /data/src/10.3/storage/spider/spd_db_mysql.cc:14513
        error_num = 0
        str = 0x7f5fe00d0978
        _db_stack_frame_ = {func = 0x7f5ff0451da0 "spider_group_by_handler::init_scan", file = 0x7f5ff0451198 "/data/src/10.3/storage/spider/spd_group_by_handler.cc", level = 2147483659, line = -1, prev = 0x7f5ff04cd530}
#13 0x00007f5ff0429f63 in spider_group_by_handler::init_scan (this=0x7f5fe010a930) at /data/src/10.3/storage/spider/spd_group_by_handler.cc:1362
        error_num = 0
        link_idx = 1
        dbton_id = 0
        dbton_hdl = 0x7f5fe00d0920
        select_lex = 0x7f5fe00053d8
        select_limit = 9223372036854775807
        direct_order_limit = 9223372036854775807
        share = 0x7f5fe00c3f20
        conn = 0x55eda92e8084 <_db_enter_+282>
        result_list = 0x7f5fe00c2778
        link_idx_chain = 0x7f5ff04cd560
        link_idx_holder = 0x7f5ff04cd5c0
        _db_stack_frame_ = {func = 0x55eda937c907 "Pushdown_query::execute", file = 0x55eda937c8e0 "/data/src/10.3/sql/group_by_handler.cc", level = 2147483658, line = -1, prev = 0x7f5ff04cd5c0}
        field = 0x7f5fe010bb60
        __PRETTY_FUNCTION__ = "virtual int spider_group_by_handler::init_scan()"
#14 0x000055eda87eecdf in Pushdown_query::execute (this=0x7f5fe0017b48, join=0x7f5fe0014a88) at /data/src/10.3/sql/group_by_handler.cc:49
        err = -536867632
        max_limit = 140049756801672
        reset_limit = 0x0
        reset_item = 0x0
        thd = 0x7f5fe0000d90
        table = 0x7f5fe010aa58
        _db_stack_frame_ = {func = 0x55eda9374220 "do_select", file = 0x55eda93715c0 "/data/src/10.3/sql/sql_select.cc", level = 2147483657, line = -1, prev = 0x7f5ff04cd660}
#15 0x000055eda87a6f35 in do_select (join=0x7f5fe0014a88, procedure=0x0) at /data/src/10.3/sql/sql_select.cc:19331
        res = 21997
        rc = 0
        error = NESTED_LOOP_OK
        _db_stack_frame_ = {func = 0x55eda93722e1 "JOIN::exec_inner", file = 0x55eda93715c0 "/data/src/10.3/sql/sql_select.cc", level = 2147483656, line = -1, prev = 0x7f5ff04cd6c0}
        __PRETTY_FUNCTION__ = "int do_select(JOIN*, Procedure*)"
#16 0x000055eda877e14b in JOIN::exec_inner (this=0x7f5fe0014a88) at /data/src/10.3/sql/sql_select.cc:4151
        columns_list = 0x7f5fe0005500
        _db_stack_frame_ = {func = 0x55eda9372396 "mysql_select", file = 0x55eda93715c0 "/data/src/10.3/sql/sql_select.cc", level = 2147483655, line = -1, prev = 0x7f5ff04cd7a0}
        __PRETTY_FUNCTION__ = "void JOIN::exec_inner()"
#17 0x000055eda877d50e in JOIN::exec (this=0x7f5fe0014a88) at /data/src/10.3/sql/sql_select.cc:3945
No locals.
#18 0x000055eda877e837 in mysql_select (thd=0x7f5fe0000d90, tables=0x7f5fe0013038, wild_num=0, fields=@0x7f5fe0005500: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x7f5fe0012e90, last = 0x7f5fe0012fd0, elements = 2}, <No data fields>}, conds=0x0, og_num=3, order=0x7f5fe0014700, group=0x7f5fe0014590, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7f5fe0014a60, unit=0x7f5fe0004c40, select_lex=0x7f5fe00053d8) at /data/src/10.3/sql/sql_select.cc:4354
        err = 0
        free_join = true
        _db_stack_frame_ = {func = 0x55eda93715fd "handle_select", file = 0x55eda93715c0 "/data/src/10.3/sql/sql_select.cc", level = 2147483654, line = -1, prev = 0x7f5ff04cd860}
        join = 0x7f5fe0014a88
#19 0x000055eda876fdad in handle_select (thd=0x7f5fe0000d90, lex=0x7f5fe0004b80, result=0x7f5fe0014a60, setup_tables_done_option=0) at /data/src/10.3/sql/sql_select.cc:372
        unit = 0x7f5fe0004c40
        res = false
        select_lex = 0x7f5fe00053d8
        _db_stack_frame_ = {func = 0x55eda93662c8 "mysql_execute_command", file = 0x55eda93656a8 "/data/src/10.3/sql/sql_parse.cc", level = 2147483653, line = -1, prev = 0x7f5ff04cded0}
#20 0x000055eda8736d90 in execute_sqlcom_select (thd=0x7f5fe0000d90, all_tables=0x7f5fe0013038) at /data/src/10.3/sql/sql_parse.cc:6339
        save_protocol = 0x0
        lex = 0x7f5fe0004b80
        result = 0x7f5fe0014a60
        res = false
        __PRETTY_FUNCTION__ = "bool execute_sqlcom_select(THD*, TABLE_LIST*)"
#21 0x000055eda872d798 in mysql_execute_command (thd=0x7f5fe0000d90) at /data/src/10.3/sql/sql_parse.cc:3870
        privileges_requested = 1
        res = 0
        up_result = 0
        lex = 0x7f5fe0004b80
        select_lex = 0x7f5fe00053d8
        first_table = 0x7f5fe0013038
        all_tables = 0x7f5fe0013038
        unit = 0x7f5fe0004c40
        have_table_map_for_update = false
        rpl_filter = 0x388a92e8084
        _db_stack_frame_ = {func = 0x55eda93675a0 "mysql_parse", file = 0x55eda93656a8 "/data/src/10.3/sql/sql_parse.cc", level = 2147483652, line = -1, prev = 0x7f5ff04ce400}
        __PRETTY_FUNCTION__ = "int mysql_execute_command(THD*)"
        orig_binlog_format = BINLOG_FORMAT_MIXED
        orig_current_stmt_binlog_format = BINLOG_FORMAT_STMT
#22 0x000055eda873b090 in mysql_parse (thd=0x7f5fe0000d90, rawbuf=0x7f5fe0012ad8 "SELECT MIN(t2.a) AS f1, t1.b AS f2 FROM t_spider AS t1 JOIN t_spider AS t2 GROUP BY f2 ORDER BY f1, f2", length=102, parser_state=0x7f5ff04ce5b0, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:7870
        found_semicolon = 0x0
        error = 32607
        lex = 0x7f5fe0004b80
        err = false
        _db_stack_frame_ = {func = 0x55eda9365b32 "dispatch_command", file = 0x55eda93656a8 "/data/src/10.3/sql/sql_parse.cc", level = 2147483651, line = -1, prev = 0x7f5ff04ce590}
        __PRETTY_FUNCTION__ = "void mysql_parse(THD*, char*, uint, Parser_state*, bool, bool)"
#23 0x000055eda87278c5 in dispatch_command (command=COM_QUERY, thd=0x7f5fe0000d90, packet=0x7f5fe0008f31 "", packet_length=102, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1852
        packet_end = 0x7f5fe0012b3e ""
        parser_state = {m_lip = {lookahead_token = -1, lookahead_yylval = 0x0, m_thd = 0x7f5fe0000d90, m_ptr = 0x7f5fe0012b3f "\004", m_tok_start = 0x7f5fe0012b3f "\004", m_tok_end = 0x7f5fe0012b3f "\004", m_end_of_query = 0x7f5fe0012b3e "", m_tok_start_prev = 0x7f5fe0012b3e "", m_buf = 0x7f5fe0012ad8 "SELECT MIN(t2.a) AS f1, t1.b AS f2 FROM t_spider AS t1 JOIN t_spider AS t2 GROUP BY f2 ORDER BY f1, f2", m_buf_length = 102, m_echo = true, m_echo_saved = 12, m_cpp_buf = 0x7f5fe0012b98 "SELECT MIN(t2.a) AS f1, t1.b AS f2 FROM t_spider AS t1 JOIN t_spider AS t2 GROUP BY f2 ORDER BY f1, f2", m_cpp_ptr = 0x7f5fe0012bfe "", m_cpp_tok_start = 0x7f5fe0012bfe "", m_cpp_tok_start_prev = 0x7f5fe0012bfe "", m_cpp_tok_end = 0x7f5fe0012bfe "", m_body_utf8 = 0x0, m_body_utf8_ptr = 0x10000a92c283b <error: Cannot access memory at address 0x10000a92c283b>, 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 = 1, m_digest = 0x0, in_comment = NO_COMMENT, in_comment_saved = PRESERVE_COMMENT, m_cpp_text_start = 0x7f5fe0012bfc "f2", m_cpp_text_end = 0x7f5fe0012bfe "", 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 = 0x7f5fe0004658}
        net = 0x7f5fe0001098
        error = false
        do_end_of_statement = true
        _db_stack_frame_ = {func = 0x55eda93658bd "do_command", file = 0x55eda93656a8 "/data/src/10.3/sql/sql_parse.cc", level = 2147483650, line = -1, prev = 0x7f5ff04cedf0}
        drop_more_results = false
        __PRETTY_FUNCTION__ = "bool dispatch_command(enum_server_command, THD*, char*, uint, bool, bool)"
        res = <optimized out>
#24 0x000055eda8726283 in do_command (thd=0x7f5fe0000d90) at /data/src/10.3/sql/sql_parse.cc:1398
        return_value = false
        packet = 0x7f5fe0008f30 "\001"
        packet_length = 103
        net = 0x7f5fe0001098
        command = COM_QUERY
        _db_stack_frame_ = {func = 0x55eda96e77d0 "?func", file = 0x55eda96e77d6 "?file", level = 2147483649, line = -1, prev = 0x0}
        __PRETTY_FUNCTION__ = "bool do_command(THD*)"
#25 0x000055eda88a3878 in do_handle_one_connection (connect=0x55edab9a1170) at /data/src/10.3/sql/sql_connect.cc:1403
        create_user = true
        thr_create_utime = 3192437082090
        thd = 0x7f5fe0000d90
#26 0x000055eda88a35e3 in handle_one_connection (arg=0x55edab9a1170) at /data/src/10.3/sql/sql_connect.cc:1308
        connect = 0x55edab9a1170
#27 0x000055eda9252b3a in pfs_spawn_thread (arg=0x55edabaa1a40) at /data/src/10.3/storage/perfschema/pfs.cc:1869
        typed_arg = 0x55edabaa1a40
        user_arg = 0x55edab9a1170
        user_start_routine = 0x55eda88a35b3 <handle_one_connection(void*)>
        pfs = 0x7f5ff479e6c0
        klass = 0x55edab794280
#28 0x00007f5ff6640ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140050030196480, -3583781244168955639, 140722750029150, 140722750029151, 140050030194624, 311296, 3529759343611877641, 3529754731847096585}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#29 0x00007f5ff6570def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

10.3 990cde80 non-debug

#2  0x00005653895f0158 in handle_fatal_signal (sig=11) at /data/src/10.3/sql/signal_handler.cc:365
        curr_time = 1656770393
        tm = {tm_sec = 53, tm_min = 59, tm_hour = 16, tm_mday = 2, tm_mon = 6, tm_year = 122, tm_wday = 6, tm_yday = 182, tm_isdst = 1, tm_gmtoff = 10800, tm_zone = 0x56538cb42270 "EEST"}
        thd = 0x7f293c000c48
        print_invalid_query_pointer = false
#3  <signal handler called>
No locals.
#4  0x00007f2952e405e9 in spider_db_open_item_ident (item_ident=<optimized out>, spider=<optimized out>, str=0x7f293c0569a8, alias=<optimized out>, alias_length=<optimized out>, dbton_id=<optimized out>, use_fields=true, fields=0x7f293c13ff20) at /data/src/10.3/storage/spider/spd_db_conn.cc:9121
        field_chain = <optimized out>
        field_holder = 0x7f293c07ed68
        field = 0x0
        error_num = <optimized out>
        field_name_length = <optimized out>
        share = <optimized out>
#5  0x00007f2952eb7b6d in spider_mbase_handler::append_order_by (fields=0x7f293c13ff20, use_fields=<optimized out>, alias_length=0, alias=0x0, str=0x7f293c0569a8, order=0x7f293c0114c8, this=0x7f293c056950) at /data/src/10.3/storage/spider/spd_db_mysql.cc:14536
        error_num = <optimized out>
        error_num = <optimized out>
#6  spider_mbase_handler::append_order_by (this=0x7f293c056950, order=<optimized out>, str=0x7f293c0569a8, alias=0x0, alias_length=0, use_fields=<optimized out>, fields=0x7f293c13ff20) at /data/src/10.3/storage/spider/spd_db_mysql.cc:14518
        error_num = <optimized out>
#7  0x00007f2952ebb246 in spider_group_by_handler::init_scan (this=0x7f293c07f070) at /data/src/10.3/storage/spider/spd_group_by_handler.cc:1362
        error_num = <optimized out>
        link_idx = <optimized out>
        dbton_id = <optimized out>
        dbton_hdl = 0x7f293c056950
        select_lex = 0x7f293c0050d0
        select_limit = 9223372036854775807
        direct_order_limit = <optimized out>
        share = 0x7f293c04ff78
        conn = <optimized out>
        result_list = 0x7f293c04f940
        link_idx_chain = <optimized out>
        link_idx_holder = <optimized out>
#8  0x0000565389477eb0 in Pushdown_query::execute (this=0x7f293c014620, join=join@entry=0x7f293c0116e0) at /data/src/10.3/sql/group_by_handler.cc:49
        err = <optimized out>
        max_limit = <optimized out>
        reset_limit = 0x0
        reset_item = 0x0
        thd = 0x7f293c000c48
        table = 0x7f293c07f130
#9  0x000056538945bfc6 in do_select (procedure=<optimized out>, join=0x7f293c0116e0) at /data/src/10.3/sql/sql_select.cc:19331
        res = <optimized out>
        rc = 0
        error = NESTED_LOOP_OK
        rc = <optimized out>
        error = <optimized out>
        res = <optimized out>
        last_tab = <optimized out>
        state = <optimized out>
        end_select = <optimized out>
        cleared_tables = <optimized out>
        columns_list = <optimized out>
        join_tab = <optimized out>
        sort_tab = <optimized out>
        join_tab = <optimized out>
        const_tables = <optimized out>
#10 JOIN::exec_inner (this=0x7f293c0116e0) at /data/src/10.3/sql/sql_select.cc:4151
        columns_list = <optimized out>
#11 0x000056538945c5b3 in JOIN::exec (this=this@entry=0x7f293c0116e0) at /data/src/10.3/sql/sql_select.cc:3945
No locals.
#12 0x000056538945c70e in mysql_select (thd=0x7f293c000c48, tables=0x7f293c00fc90, wild_num=0, fields=@0x7f293c0051f8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x7f293c00fae8, last = 0x7f293c00fc28, elements = 2}, <No data fields>}, conds=0x0, og_num=3, order=0x7f293c011358, group=0x7f293c0111e8, having=0x0, proc_param=0x0, select_options=<optimized out>, result=0x7f293c0116b8, unit=0x7f293c004938, select_lex=0x7f293c0050d0) at /data/src/10.3/sql/sql_select.cc:4354
        err = <optimized out>
        free_join = <optimized out>
        join = 0x7f293c0116e0
#13 0x000056538945d03b in handle_select (thd=thd@entry=0x7f293c000c48, lex=lex@entry=0x7f293c004878, result=result@entry=0x7f293c0116b8, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/src/10.3/sql/sql_select.cc:372
        unit = 0x7f293c004938
        res = <optimized out>
        select_lex = 0x7f293c0050d0
#14 0x00005653893ecf61 in execute_sqlcom_select (thd=0x7f293c000c48, all_tables=0x7f293c00fc90) at /data/src/10.3/sql/sql_parse.cc:6339
        save_protocol = 0x0
        lex = 0x7f293c004878
        result = 0x7f293c0116b8
        res = <optimized out>
#15 0x00005653893faa0a in mysql_execute_command (thd=<optimized out>) at /data/src/10.3/sql/sql_parse.cc:3870
        privileges_requested = <optimized out>
        multi_delete_error = <optimized out>
        wsrep_error_label = <optimized out>
        error = <optimized out>
        res = <optimized out>
        up_result = 0
        lex = 0x7f293c004878
        select_lex = 0x7f293c0050d0
        first_table = 0x7f293c00fc90
        all_tables = 0x7f293c00fc90
        unit = 0x7f293c004938
        have_table_map_for_update = <optimized out>
        rpl_filter = <optimized out>
        orig_binlog_format = BINLOG_FORMAT_MIXED
        orig_current_stmt_binlog_format = BINLOG_FORMAT_STMT
#16 0x00005653893fd503 in mysql_parse (thd=0x7f293c000c48, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /data/src/10.3/sql/sql_parse.cc:7870
        found_semicolon = <optimized out>
        error = <optimized out>
        lex = 0x7f293c004878
        err = <optimized out>
#17 0x00005653893ff5b5 in dispatch_command (command=COM_QUERY, thd=0x7f293c000c48, packet=<optimized out>, packet_length=<optimized out>, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /data/src/10.3/sql/sql_class.h:200
        packet_end = 0x7f293c00f796 ""
        parser_state = {m_lip = {lookahead_token = -1, lookahead_yylval = 0x0, m_thd = 0x7f293c000c48, m_ptr = 0x7f293c00f797 "\004", m_tok_start = 0x7f293c00f797 "\004", m_tok_end = 0x7f293c00f797 "\004", m_end_of_query = 0x7f293c00f796 "", m_tok_start_prev = 0x7f293c00f796 "", m_buf = 0x7f293c00f730 "SELECT MIN(t2.a) AS f1, t1.b AS f2 FROM t_spider AS t1 JOIN t_spider AS t2 GROUP BY f2 ORDER BY f1, f2", m_buf_length = 102, m_echo = true, m_echo_saved = false, m_cpp_buf = 0x7f293c00f7f0 "SELECT MIN(t2.a) AS f1, t1.b AS f2 FROM t_spider AS t1 JOIN t_spider AS t2 GROUP BY f2 ORDER BY f1, f2", m_cpp_ptr = 0x7f293c00f856 "", m_cpp_tok_start = 0x7f293c00f856 "", m_cpp_tok_start_prev = 0x7f293c00f856 "", m_cpp_tok_end = 0x7f293c00f856 "", 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 = 1, m_digest = 0x0, in_comment = NO_COMMENT, in_comment_saved = NO_COMMENT, m_cpp_text_start = 0x7f293c00f854 "f2", m_cpp_text_end = 0x7f293c00f856 "", 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 = 0x7f293c004358}
        net = 0x7f293c000ec8
        error = false
        do_end_of_statement = true
        drop_more_results = false
        res = <optimized out>
#18 0x0000565389401979 in do_command (thd=0x7f293c000c48) at /data/src/10.3/sql/sql_parse.cc:1398
        return_value = <optimized out>
        packet = 0x7f293c007388 "\001"
        packet_length = 103
        net = 0x7f293c000ec8
        command = COM_QUERY
#19 0x00005653894eaf06 in do_handle_one_connection (connect=connect@entry=0x56538cbf3498) at /data/src/10.3/sql/sql_connect.cc:1403
        create_user = true
        thr_create_utime = <optimized out>
        thd = 0x7f293c000c48
#20 0x00005653894eb0db in handle_one_connection (arg=arg@entry=0x56538cbf3498) at /data/src/10.3/sql/sql_connect.cc:1308
        connect = 0x56538cbf3498
#21 0x0000565389abcf92 in pfs_spawn_thread (arg=0x56538ccd7288) at /data/src/10.3/storage/perfschema/pfs.cc:1869
        typed_arg = 0x56538ccd7288
        user_arg = 0x56538cbf3498
        user_start_routine = 0x5653894eb0a0 <handle_one_connection(void*)>
        pfs = <optimized out>
        klass = <optimized out>
#22 0x00007f295d0fdea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139815462102784, 2755890658141390836, 140723464493838, 140723464493839, 139815462100928, 311296, -2851827410300188684, -2851805591824775180}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
#23 0x00007f295d02ddef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95



 Comments   
Comment by Nayuta Yanagisawa (Inactive) [ 2022-07-28 ]

The following patch at least makes the test pass, but I need some more investigation to have no doubt that it is the correct fix. https://github.com/MariaDB/server/commit/bafdd63f49fc95f30a9dcffc5f1f5dc41503cfde

Comment by Nayuta Yanagisawa (Inactive) [ 2022-07-28 ]

If field_exchange() returns NULL when str == NULL, then the field should not be pushed down (in the case of GBH, Spider should stop using GBH ), but apparently, field_exchange() is not called when str == NULL.

Comment by Nayuta Yanagisawa (Inactive) [ 2022-07-29 ]

holyfoot Please review: https://github.com/MariaDB/server/commit/196cd2cb03de09b383ecc298acdc15cd78d5d5c2

Comment by Alexey Botchkov [ 2022-08-15 ]

ok to push.

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