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

Server crash on query with CTE

    XMLWordPrintable

    Details

      Description

      with cte as (select 1 union select 2 union select 3) select 1;
      

      Thread 1 (Thread 0x7f5dfe3eb700 (LWP 31003)):
      #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=11) at ../sysdeps/unix/sysv/linux/pthread_kill.c:62
      #1  0x000055a4a8f81e6a in my_write_core (sig=sig@entry=11) at /home/alice/git/10.2/mysys/stacktrace.c:477
      #2  0x000055a4a8ac16f4 in handle_fatal_signal (sig=11) at /home/alice/git/10.2/sql/signal_handler.cc:305
      #3  <signal handler called>
      #4  0x000055a4a89cd3ae in st_select_lex_unit::prepare (this=0x7f5dec00f748, thd_arg=thd_arg@entry=0x7f5dec0009a8, sel_result=sel_result@entry=0x0, additional_options=additional_options@entry=0) at /home/alice/git/10.2/sql/sql_union.cc:628
      #5  0x000055a4a8a574ec in With_element::prepare_unreferenced (this=this@entry=0x7f5dec010c48, thd=thd@entry=0x7f5dec0009a8) at /home/alice/git/10.2/sql/sql_cte.cc:970
      #6  0x000055a4a8a57573 in With_clause::prepare_unreferenced_elements (this=<optimized out>, thd=0x7f5dec0009a8) at /home/alice/git/10.2/sql/sql_cte.cc:717
      #7  0x000055a4a8982ad4 in JOIN::prepare (this=0x7f5dec010ea0, tables_init=<optimized out>, wild_num=<optimized out>, conds_init=<optimized out>, og_num=<optimized out>, order_init=<optimized out>, skip_order_by=false, group_init=0x0, having_init=0x0, proc_param_init=0x0, select_lex_arg=0x7f5dec004ac0, unit_arg=0x7f5dec004388) at /home/alice/git/10.2/sql/sql_select.cc:893
      #8  0x000055a4a898f8c7 in mysql_select (thd=thd@entry=0x7f5dec0009a8, tables=0x0, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7f5dec010e80, unit=0x7f5dec004388, select_lex=0x7f5dec004ac0) at /home/alice/git/10.2/sql/sql_select.cc:3758
      #9  0x000055a4a898fa3e in handle_select (thd=thd@entry=0x7f5dec0009a8, lex=lex@entry=0x7f5dec0042c0, result=result@entry=0x7f5dec010e80, setup_tables_done_option=setup_tables_done_option@entry=0) at /home/alice/git/10.2/sql/sql_select.cc:376
      #10 0x000055a4a888e056 in execute_sqlcom_select (thd=thd@entry=0x7f5dec0009a8, all_tables=0x0) at /home/alice/git/10.2/sql/sql_parse.cc:6474
      #11 0x000055a4a8945fd0 in mysql_execute_command (thd=thd@entry=0x7f5dec0009a8) at /home/alice/git/10.2/sql/sql_parse.cc:3480
      #12 0x000055a4a8947f6d in mysql_parse (thd=0x7f5dec0009a8, rawbuf=<optimized out>, length=61, parser_state=0x7f5dfe3ea240, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /home/alice/git/10.2/sql/sql_parse.cc:7999
      #13 0x000055a4a894ab06 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7f5dec0009a8, packet=packet@entry=0x7f5dec006ce9 "with cte as (select 1 union select 2 union select 3) select 1", packet_length=packet_length@entry=61, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /home/alice/git/10.2/sql/sql_parse.cc:1821
      #14 0x000055a4a894b3df in do_command (thd=0x7f5dec0009a8) at /home/alice/git/10.2/sql/sql_parse.cc:1375
      #15 0x000055a4a8a05634 in do_handle_one_connection (connect=connect@entry=0x55a4aaf9a708) at /home/alice/git/10.2/sql/sql_connect.cc:1335
      #16 0x000055a4a8a057a4 in handle_one_connection (arg=arg@entry=0x55a4aaf9a708) at /home/alice/git/10.2/sql/sql_connect.cc:1241
      #17 0x000055a4a8c43ac4 in pfs_spawn_thread (arg=0x55a4aaf5d688) at /home/alice/git/10.2/storage/perfschema/pfs.cc:1862
      #18 0x00007f5e04d576ba in start_thread (arg=0x7f5dfe3eb700) at pthread_create.c:333
      #19 0x00007f5e041ec41d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
      

      180531 12:39:17 [ERROR] mysqld got signal 11 ;
      Server version: 10.2.16-MariaDB-log
      key_buffer_size=1048576
      read_buffer_size=131072
      max_used_connections=1
      max_threads=153
      thread_count=2
      It is possible that mysqld could use up to 
      key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 63014 K  bytes of memory
      Hope that's ok; if not, decrease some variables in the equation.
       
      Thread pointer: 0x7f5dec0009a8
      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 = 0x7f5dfe3eae78 thread_stack 0x49000
      mysys/stacktrace.c:268(my_print_stacktrace)[0x55a4a8f82269]
      sql/signal_handler.cc:168(handle_fatal_signal)[0x55a4a8ac1645]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f5e04d61390]
      sql/sql_union.cc:628(st_select_lex_unit::prepare(THD*, select_result*, unsigned long))[0x55a4a89cd3ae]
      sql/sql_cte.cc:969(With_element::prepare_unreferenced(THD*))[0x55a4a8a574ec]
      sql/sql_cte.cc:717(With_clause::prepare_unreferenced_elements(THD*))[0x55a4a8a57573]
      sql/sql_select.cc:893(JOIN::prepare(TABLE_LIST*, unsigned int, Item*, unsigned int, st_order*, bool, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*))[0x55a4a8982ad4]
      sql/sql_select.cc:3758(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*))[0x55a4a898f8c7]
      sql/sql_select.cc:376(handle_select(THD*, LEX*, select_result*, unsigned long))[0x55a4a898fa3e]
      sql/sql_parse.cc:6476(execute_sqlcom_select(THD*, TABLE_LIST*) [clone .constprop.192])[0x55a4a888e056]
      sql/sql_parse.cc:3480(mysql_execute_command(THD*))[0x55a4a8945fd0]
      sql/sql_parse.cc:7999(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55a4a8947f6d]
      sql/sql_parse.cc:1821(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55a4a894ab06]
      sql/sql_parse.cc:1377(do_command(THD*))[0x55a4a894b3df]
      sql/sql_connect.cc:1335(do_handle_one_connection(CONNECT*))[0x55a4a8a05634]
      sql/sql_connect.cc:1243(handle_one_connection)[0x55a4a8a057a4]
      perfschema/pfs.cc:1865(pfs_spawn_thread)[0x55a4a8c43ac4]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f5e04d576ba]
      x86_64/clone.S:111(clone)[0x7f5e041ec41d]
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x7f5dec00f1d8): with cte as (select 1 union select 2 union select 3) select 1
      Connection ID (thread ID): 4
      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=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on
      
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              igor Igor Babaev
              Reporter:
              alice Alice Sherepa
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: