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

Segmentation fault at /mariadb-11.3.0/sql/sql_select.cc:23188

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Duplicate
    • 11.3.0
    • N/A
    • Server
    • None
    • Ubuntu 20.04

    Description

      Run these queries in release build:

      CREATE TABLE t0 ( c18 DECIMAL ( 12 ) DEFAULT ( -108 ) ) ;
      INSERT INTO t0 VALUES ( 2 ) , ( 28 ) ;
      ALTER TABLE t0 ADD COLUMN c40 INT NOT NULL AFTER c18 ;
      INSERT INTO t0 VALUES ( -76 , -93 ) , ( -8 , -72 ) ;
      SELECT t0 . c18 AS c18 FROM ( SELECT CONVERT ( -6932390468370636723 , UNSIGNED ) % RAND ( ) | RAND ( ) << EXP ( t0 . c40 ) / EXISTS ( SELECT t0 . c40 AS c53 FROM ( SELECT t0 . c18 AS c14 FROM t0 LEFT OUTER JOIN t0 AS t1 USING ( c18 , c40 ) ) AS t2 JOIN t0 ON t2 . c14 = t0 . c18 UNION SELECT c40 + 10 AS c3 FROM t0 WHERE RAND ( ) & TRIM( TRAILING FROM 84 ) << CONVERT ( -51 , UNSIGNED ) % RAND ( ) = t0 . c18 = ALL ( SELECT RAND ( ) % EXISTS ( SELECT 3277954112335138242 AS c46 ) AS c16 FROM t0 ) < -99 AND c18 < -2077949961864004476 ) AS c43 FROM t0 ) AS t3 JOIN t0 ON t0 . c18 = t3 . c43 ;

      Will trigger Segmentation fault.

      GDB info:
      Thread 17 "mariadbd" received signal SIGSEGV, Segmentation fault.
      [Switching to Thread 0x7fffe011a700 (LWP 45046)]
      sub_select_cache (join=0x7fff98089d70, join_tab=0x7fff9809ac28,
      end_of_records=false) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:23188
      23188 join_tab->cache->reset_join(join);
      (gdb) p join_tab->cache
      $2 = (JOIN_CACHE *) 0x0

      #0 sub_select_cache (join=0x7fff98089d70, join_tab=0x7fff9809ac28,
      end_of_records=false) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:23188
      #1 0x0000555555dad6d4 in evaluate_join_record (
      join=join@entry=0x7fff98089d70, join_tab=join_tab@entry=0x7fff9809a7b0,
      error=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:23677
      #2 0x0000555555dbf7fb in sub_select (join=0x7fff98089d70,
      join_tab=0x7fff9809a7b0, end_of_records=false)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:23444
      #3 0x0000555555df19b2 in do_select (procedure=<optimized out>,
      join=0x7fff98089d70) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:22961
      #4 JOIN::exec_inner (this=this@entry=0x7fff98089d70)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:4941
      #5 0x0000555555df1d78 in JOIN::exec (this=0x7fff98089d70)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:4718
      #6 0x0000555555e444bc in st_select_lex_unit::exec_inner (this=0x7fff98074780)
      at /home/wx/mariadb-11.3.0/sql/sql_union.cc:2389
      #7 0x0000555555e44821 in st_select_lex_unit::exec (this=<optimized out>)
      at /home/wx/mariadb-11.3.0/sql/sql_union.cc:2292
      #8 0x00005555560af942 in subselect_union_engine::exec (this=0x7fff9807a3a8)
      at /home/wx/mariadb-11.3.0/sql/item_subselect.cc:4187
      #9 0x00005555560b040c in Item_subselect::exec (this=0x7fff9807a200)
      at /home/wx/mariadb-11.3.0/sql/item_subselect.cc:812
      #10 0x00005555560aff63 in Item_exists_subselect::val_real (this=0x7fff9807a200)
      at /home/wx/mariadb-11.3.0/sql/item_subselect.cc:1829
      #11 0x000055555604cd58 in Item_func_div::real_op (this=0x7fff9807a3e0)
      at /home/wx/mariadb-11.3.0/sql/item_func.cc:1503
      #12 0x000055555604e25c in Item_func_hybrid_field_type::val_int_from_real_op (
      this=<optimized out>) at /home/wx/mariadb-11.3.0/sql/item_func.cc:853
      #13 0x000055555605a2c6 in Item::to_longlong_null (this=0x7fff9807a3e0)
      at /home/wx/mariadb-11.3.0/sql/item.h:1452
      #14 Func_handler_shift_left_decimal_to_ulonglong::to_longlong_null (
      this=<optimized out>, item=<optimized out>)
      at /home/wx/mariadb-11.3.0/sql/item_func.cc:2203
      #15 0x0000555556025ab6 in Item_handled_func::Handler_int::val_int (
      this=<optimized out>, item=0x7fff9807a4a0)
      at /home/wx/mariadb-11.3.0/sql/item_func.h:696
      #16 0x0000555555ff7aba in Item::val_decimal_from_int (this=0x7fff9807a4a0,
      decimal_value=0x7fffe0117b28) at /home/wx/mariadb-11.3.0/sql/item.cc:343
      #17 0x0000555555f2d79f in VDec::VDec (this=0x7fffe0117b20,
      item=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_type.cc:293
      #18 0x0000555556029f33 in Func_handler_bit_or_dec_to_ulonglong::to_longlong_null (this=<optimized out>, item=0x7fff9807a558)
      at /home/wx/mariadb-11.3.0/sql/item.h:2910
      #19 0x0000555556025ab6 in Item_handled_func::Handler_int::val_int (
      this=<optimized out>, item=0x7fff9807a558)
      at /home/wx/mariadb-11.3.0/sql/item_func.h:696
      #20 0x0000555556001563 in Item::save_int_in_field (this=0x7fff9807a558,
      field=0x7fff98099df0, no_conversions=<optimized out>)
      at /home/wx/mariadb-11.3.0/sql/item.cc:6843
      #21 0x0000555555ff36d7 in Item::save_in_field (this=0x7fff9807a558,
      field=0x7fff98099df0, no_conversions=<optimized out>)
      at /home/wx/mariadb-11.3.0/sql/item.cc:6853
      #22 0x0000555555d0c0ba in fill_record (thd=0x7fff98000c58,
      table=0x7fff980991b0, ptr=0x7fff98099a90, values=...,
      ignore_errors=ignore_errors@entry=true, use_value=use_value@entry=false)
      at /home/wx/mariadb-11.3.0/sql/sql_base.cc:9320
      #23 0x0000555555e412a1 in select_unit::send_data (this=0x7fff9807e2e8,
      values=...) at /home/wx/mariadb-11.3.0/sql/sql_union.cc:122
      #24 0x0000555555dd9d0c in select_result_sink::send_data_with_check (
      u=<optimized out>, sent=<optimized out>, items=..., this=<optimized out>)
      at /home/wx/mariadb-11.3.0/sql/sql_class.h:5842
      #25 select_result_sink::send_data_with_check (sent=<optimized out>,
      u=<optimized out>, items=..., this=<optimized out>)
      at /home/wx/mariadb-11.3.0/sql/sql_class.h:5832
      #26 end_send (join=0x7fff9807e3d8, join_tab=0x7fff98092fb0,
      end_of_records=<optimized out>)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:24710
      #27 0x0000555555dad6d4 in evaluate_join_record (
      join=join@entry=0x7fff9807e3d8, join_tab=join_tab@entry=0x7fff98092b38,
      error=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:23677
      #28 0x0000555555dbf874 in sub_select (join=0x7fff9807e3d8,
      join_tab=0x7fff98092b38, end_of_records=false)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:23481
      #29 0x0000555555df19b2 in do_select (procedure=<optimized out>,
      join=0x7fff9807e3d8) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:22961
      #30 JOIN::exec_inner (this=this@entry=0x7fff9807e3d8)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:4941
      #31 0x0000555555df1d78 in JOIN::exec (this=this@entry=0x7fff9807e3d8)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:4718
      #32 0x0000555555defe1c in mysql_select (thd=thd@entry=0x7fff98000c58,
      tables=0x7fff9807a670, fields=..., conds=0x0, og_num=0, order=0x0,
      group=0x0, having=0x0, proc_param=0x0, select_options=<optimized out>,
      result=0x7fff9807e2e8, unit=0x7fff9807af50, select_lex=0x7fff98013748)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:5249
      #33 0x0000555555d2f54b in mysql_derived_fill (thd=<optimized out>,
      lex=0x7fff98004e08, derived=<optimized out>)
      at /home/wx/mariadb-11.3.0/sql/sql_derived.cc:1266
      #34 0x0000555555d2f1fc in mysql_handle_single_derived (lex=0x7fff98004e08,
      derived=derived@entry=0x7fff9807b788, phases=phases@entry=96)
      at /home/wx/mariadb-11.3.0/sql/sql_derived.cc:200
      #35 0x0000555555dbf4f0 in st_join_table::preread_init (
      this=this@entry=0x7fff980a7528)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:16029
      #36 0x0000555555dbf758 in sub_select (join=0x7fff9807db30,
      join_tab=0x7fff980a7528, end_of_records=false)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:23392
      #37 0x0000555555dad6d4 in evaluate_join_record (
      join=join@entry=0x7fff9807db30, join_tab=join_tab@entry=0x7fff980a70b0,
      error=<optimized out>) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:23677
      #38 0x0000555555dbf7fb in sub_select (join=0x7fff9807db30,
      join_tab=0x7fff980a70b0, end_of_records=false)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:23444
      #39 0x0000555555df19b2 in do_select (procedure=<optimized out>,
      join=0x7fff9807db30) at /home/wx/mariadb-11.3.0/sql/sql_select.cc:22961
      #40 JOIN::exec_inner (this=this@entry=0x7fff9807db30)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:4941
      #41 0x0000555555df1d78 in JOIN::exec (this=this@entry=0x7fff9807db30)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:4718
      #42 0x0000555555defe1c in mysql_select (thd=thd@entry=0x7fff98000c58,
      tables=0x7fff9807b788, fields=..., conds=0x0, og_num=0, order=0x0,
      group=0x0, having=0x0, proc_param=0x0, select_options=<optimized out>,
      result=0x7fff9807db08, unit=0x7fff98004ee8, select_lex=0x7fff98013138)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:5249
      #43 0x0000555555df0607 in handle_select (thd=thd@entry=0x7fff98000c58,
      lex=lex@entry=0x7fff98004e08, result=result@entry=0x7fff9807db08,
      setup_tables_done_option=setup_tables_done_option@entry=0)
      at /home/wx/mariadb-11.3.0/sql/sql_select.cc:628
      #44 0x0000555555d6de41 in execute_sqlcom_select (thd=thd@entry=0x7fff98000c58,
      all_tables=0x7fff9807b788) at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:6013
      #45 0x0000555555d7c2aa in mysql_execute_command (thd=thd@entry=0x7fff98000c58,
      is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false)
      at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:3912
      #46 0x0000555555d68c27 in mysql_parse (thd=0x7fff98000c58,
      rawbuf=<optimized out>, length=<optimized out>,
      parser_state=<optimized out>)
      at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:7734
      #47 0x0000555555d74fdd in dispatch_command (command=command@entry=COM_QUERY,
      thd=thd@entry=0x7fff98000c58, packet=packet@entry=0x7fff98008509 "",
      packet_length=packet_length@entry=589, blocking=blocking@entry=true)
      at /home/wx/mariadb-11.3.0/sql/sql_class.h:251
      #48 0x0000555555d7721e in do_command (thd=0x7fff98000c58,
      blocking=blocking@entry=true)
      at /home/wx/mariadb-11.3.0/sql/sql_parse.cc:1406
      #49 0x0000555555e9a617 in do_handle_one_connection (connect=<optimized out>,
      connect@entry=0x555557d83238, put_in_cache=put_in_cache@entry=true)
      at /home/wx/mariadb-11.3.0/sql/sql_connect.cc:1445
      #50 0x0000555555e9a94d in handle_one_connection (arg=arg@entry=0x555557d83238)
      at /home/wx/mariadb-11.3.0/sql/sql_connect.cc:1347
      #51 0x00005555561e658d in pfs_spawn_thread (arg=0x555557db13f8)
      at /home/wx/mariadb-11.3.0/storage/perfschema/pfs.cc:2201
      #52 0x00007ffff7b48609 in start_thread ()
      from /lib/x86_64-linux-gnu/libpthread.so.0
      #53 0x00007ffff7719133 in clone () from /lib/x86_64-linux-gnu/libc.so.6

      Attachments

        Activity

          People

            Unassigned Unassigned
            Xin Wen Xin Wen
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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