Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-32086

Sever crash in Item_direct_view_ref::derived_field_transformer_for_where

Details

    • Bug
    • Status: Confirmed (View Workflow)
    • Blocker
    • Resolution: Unresolved
    • 10.11.5, 10.4(EOL), 10.5, 10.6, 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL), 11.1(EOL)
    • 10.5, 10.6, 10.11, 11.4
    • Server
    • None

    Description

      How to trigger

      CREATE TABLE IF NOT EXISTS t0 ( c0 BLOB , c1 INT ( 1 ) UNSIGNED NOT NULL PRIMARY KEY , UNIQUE ( c0 DESC ) ) ;
      INSERT INTO t0 SELECT ra5 . ca4 ca0 , 10  FROM ( SELECT ra3 . ca3 ca4 FROM ( SELECT ra2 . ca2 ca3 FROM ( SELECT ra0 . c1 ca2 FROM t0 ra0 ) AS ra2 ) AS ra3 CROSS JOIN t0 ra4 ) AS ra5 WHERE ra5 . ca4 = 3 ;
      

      Server error log

      Server version: 10.11.5-MariaDB source revision: 7875294b6b74b53dd3aaa723e6cc103d2bb47b2c
      key_buffer_size=134217728
      read_buffer_size=131072
      max_used_connections=1
      max_threads=153
      thread_count=21
      It is possible that mysqld could use up to
      key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 468037 K  bytes of memory
      Hope that's ok; if not, decrease some variables in the equation.
       
      Thread pointer: 0x7f59b4000c18
      Attempting backtrace. You can use the following information to find out
      where mysqld died. If you see no messages after this, something went
      terribly wrong...
      stack_bottom = 0x7f5a78083d98 thread_stack 0x49000
      mysys/stacktrace.c:216(my_print_stacktrace)[0x55cc2249325e]
      sql/signal_handler.cc:241(handle_fatal_signal)[0x55cc22004765]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f5a9009c980]
      sql/item.cc:7819(Item_direct_view_ref::derived_field_transformer_for_where(THD*, unsigned char*))[0x55cc2201bb21]
      sql/item_func.cc:483(Item_args::transform_args(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55cc22068a18]
      sql/item_func.cc:518(Item_func::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55cc22068a79]
      sql/sql_derived.cc:1391(transform_condition_or_part(THD*, Item*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55cc21d9989a]
      sql/sql_lex.cc:10602(st_select_lex::pushdown_cond_into_where_clause(THD*, Item*, Item**, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55cc21dc38ca]
      sql/sql_derived.cc:1589(pushdown_cond_for_derived(THD*, Item*, TABLE_LIST*))[0x55cc21d99b89]
      sql/sql_select.cc:2374(JOIN::optimize_inner())[0x55cc21e44b65]
      sql/sql_select.cc:1897(JOIN::optimize())[0x55cc21e47af3]
      sql/sql_derived.cc:1045(mysql_derived_optimize(THD*, LEX*, TABLE_LIST*))[0x55cc21d99609]
      sql/sql_derived.cc:200(mysql_handle_single_derived(LEX*, TABLE_LIST*, unsigned int))[0x55cc21d98e24]
      sql/sql_select.cc:2377(JOIN::optimize_inner())[0x55cc21e44b8c]
      sql/sql_select.cc:1897(JOIN::optimize())[0x55cc21e47af3]
      sql/sql_select.cc:5098(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*))[0x55cc21e47bd9]
      sql/sql_select.cc:586(handle_select(THD*, LEX*, select_result*, unsigned long long))[0x55cc21e483be]
      sql/sql_parse.cc:4735(mysql_execute_command(THD*, bool))[0x55cc21de10fb]
      sql/sql_parse.cc:8051(mysql_parse(THD*, char*, unsigned int, Parser_state*))[0x55cc21dcf3af]
      sql/sql_parse.cc:1865(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool))[0x55cc21dda104]
      sql/sql_parse.cc:1407(do_command(THD*, bool))[0x55cc21ddb60b]
      sql/sql_connect.cc:1416(do_handle_one_connection(CONNECT*, bool))[0x55cc21ee5bbf]
      sql/sql_connect.cc:1318(handle_one_connection)[0x55cc21ee5efd]
      perfschema/pfs.cc:2204(pfs_spawn_thread)[0x55cc221e5e85]
      nptl/pthread_create.c:463(start_thread)[0x7f5a900916db]
      x86_64/clone.S:97(clone)[0x7f5a8f1f361f]
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x7f59b4015390): INSERT INTO t0 SELECT ra5 . ca4 ca0 , 10  FROM ( SELECT ra3 . ca3 ca4 FROM ( SELECT ra2 . ca2 ca3 FROM ( SELECT ra0 . c1 ca2 FROM t0 ra0 ) AS ra2 ) AS ra3 CROSS JOIN t0 ra4 ) AS ra5 WHERE ra5 . ca4 = 3
       
      Connection ID (thread ID): 23
      Status: NOT_KILLED
       
      Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,hash_join_cardinality=off
      

      Attachments

        Issue Links

          Activity

            alice Alice Sherepa added a comment -

            Thank you!
            I repeated as described on 10.4-11.3 with InnoDB/Myisam

            CREATE TABLE t0 (k int, id int);
             
            INSERT INTO t0 
            SELECT 1,10
            FROM
             (SELECT dt3.id FROM  (SELECT dt2.id FROM (SELECT id FROM t0)dt2) dt3
              natural JOIN t0 ra4)  dt
            WHERE dt.id = 3 ;
            

            Version: '10.4.32-MariaDB-debug-log' 
            mysqld: /10.4/src/sql/item.cc:7700: virtual Item* Item_direct_view_ref::derived_field_transformer_for_where(THD*, uchar*): Assertion `producing_item != __null' failed.
            230912 11:16:09 [ERROR] mysqld got signal 6 ;
             
            Server version: 10.4.32-MariaDB-debug-log source revision: d762e9d943aa444695ebe845a7376fd9cbb0e3dc
             
            sql/signal_handler.cc:238(handle_fatal_signal)[0x55732f6c2771]
            sigaction.c:0(__restore_rt)[0x7f8ba5144420]
            sql/item.cc:7701(Item_direct_view_ref::derived_field_transformer_for_where(THD*, unsigned char*))[0x55732f752d9f]
            sql/item.cc:8195(Item_ref::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55732f757511]
            sql/item_func.cc:474(Item_args::transform_args(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55732f820c57]
            sql/item_func.cc:510(Item_func::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55732f820ed5]
            sql/sql_derived.cc:1376(transform_condition_or_part(THD*, Item*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55732ee331a3]
            sql/sql_lex.cc:9829(st_select_lex::pushdown_cond_into_where_clause(THD*, Item*, Item**, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55732eec18f1]
            sql/sql_derived.cc:1568(pushdown_cond_for_derived(THD*, Item*, TABLE_LIST*))[0x55732ee33f91]
            sql/sql_select.cc:2198(JOIN::optimize_inner())[0x55732efc1c4b]
            sql/sql_select.cc:1711(JOIN::optimize())[0x55732efbc7b9]
            sql/sql_derived.cc:1029(mysql_derived_optimize(THD*, LEX*, TABLE_LIST*))[0x55732ee30aff]
            sql/sql_derived.cc:200(mysql_handle_single_derived(LEX*, TABLE_LIST*, unsigned int))[0x55732ee2b2aa]
            sql/sql_select.cc:2201(JOIN::optimize_inner())[0x55732efc1d1e]
            sql/sql_select.cc:1711(JOIN::optimize())[0x55732efbc7b9]
            sql/sql_select.cc:4812(mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x55732efdd7ab]
            sql/sql_select.cc:442(handle_select(THD*, LEX*, select_result*, unsigned long))[0x55732efae4b0]
            sql/sql_parse.cc:4729(mysql_execute_command(THD*))[0x55732ef0c86e]
            sql/sql_parse.cc:8012(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55732ef23795]
            sql/sql_parse.cc:1860(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55732eef9bbb]
            sql/sql_parse.cc:1378(do_command(THD*))[0x55732eef66e6]
            sql/sql_connect.cc:1420(do_handle_one_connection(CONNECT*))[0x55732f30431b]
            sql/sql_connect.cc:1325(handle_one_connection)[0x55732f303bbf]
            perfschema/pfs.cc:1871(pfs_spawn_thread)[0x55732ffadce8]
            nptl/pthread_create.c:478(start_thread)[0x7f8ba5138609]
             
            Query (0x62b0000a1290): INSERT INTO t0 
            SELECT 1,10
            FROM
            (SELECT dt3.id FROM  (SELECT dt2.id FROM (SELECT id FROM t0)dt2) dt3
            natural JOIN t0 ra4)  dt
            WHERE dt.id = 3
            
            

            alice Alice Sherepa added a comment - Thank you! I repeated as described on 10.4-11.3 with InnoDB/Myisam CREATE TABLE t0 (k int , id int );   INSERT INTO t0 SELECT 1,10 FROM ( SELECT dt3.id FROM ( SELECT dt2.id FROM ( SELECT id FROM t0)dt2) dt3 natural JOIN t0 ra4) dt WHERE dt.id = 3 ; Version: '10.4.32-MariaDB-debug-log' mysqld: /10.4/src/sql/item.cc:7700: virtual Item* Item_direct_view_ref::derived_field_transformer_for_where(THD*, uchar*): Assertion `producing_item != __null' failed. 230912 11:16:09 [ERROR] mysqld got signal 6 ;   Server version: 10.4.32-MariaDB-debug-log source revision: d762e9d943aa444695ebe845a7376fd9cbb0e3dc   sql/signal_handler.cc:238(handle_fatal_signal)[0x55732f6c2771] sigaction.c:0(__restore_rt)[0x7f8ba5144420] sql/item.cc:7701(Item_direct_view_ref::derived_field_transformer_for_where(THD*, unsigned char*))[0x55732f752d9f] sql/item.cc:8195(Item_ref::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55732f757511] sql/item_func.cc:474(Item_args::transform_args(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55732f820c57] sql/item_func.cc:510(Item_func::transform(THD*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55732f820ed5] sql/sql_derived.cc:1376(transform_condition_or_part(THD*, Item*, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55732ee331a3] sql/sql_lex.cc:9829(st_select_lex::pushdown_cond_into_where_clause(THD*, Item*, Item**, Item* (Item::*)(THD*, unsigned char*), unsigned char*))[0x55732eec18f1] sql/sql_derived.cc:1568(pushdown_cond_for_derived(THD*, Item*, TABLE_LIST*))[0x55732ee33f91] sql/sql_select.cc:2198(JOIN::optimize_inner())[0x55732efc1c4b] sql/sql_select.cc:1711(JOIN::optimize())[0x55732efbc7b9] sql/sql_derived.cc:1029(mysql_derived_optimize(THD*, LEX*, TABLE_LIST*))[0x55732ee30aff] sql/sql_derived.cc:200(mysql_handle_single_derived(LEX*, TABLE_LIST*, unsigned int))[0x55732ee2b2aa] sql/sql_select.cc:2201(JOIN::optimize_inner())[0x55732efc1d1e] sql/sql_select.cc:1711(JOIN::optimize())[0x55732efbc7b9] sql/sql_select.cc:4812(mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x55732efdd7ab] sql/sql_select.cc:442(handle_select(THD*, LEX*, select_result*, unsigned long))[0x55732efae4b0] sql/sql_parse.cc:4729(mysql_execute_command(THD*))[0x55732ef0c86e] sql/sql_parse.cc:8012(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55732ef23795] sql/sql_parse.cc:1860(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55732eef9bbb] sql/sql_parse.cc:1378(do_command(THD*))[0x55732eef66e6] sql/sql_connect.cc:1420(do_handle_one_connection(CONNECT*))[0x55732f30431b] sql/sql_connect.cc:1325(handle_one_connection)[0x55732f303bbf] perfschema/pfs.cc:1871(pfs_spawn_thread)[0x55732ffadce8] nptl/pthread_create.c:478(start_thread)[0x7f8ba5138609]   Query (0x62b0000a1290): INSERT INTO t0 SELECT 1,10 FROM (SELECT dt3.id FROM (SELECT dt2.id FROM (SELECT id FROM t0)dt2) dt3 natural JOIN t0 ra4) dt WHERE dt.id = 3

            People

              psergei Sergei Petrunia
              wulian jiaqi
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.