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

[Draft] Server crashes in in multi_update::initialize_tables

    XMLWordPrintable

Details

    Description

      --disable_abort_on_error
      --source include/have_innodb.inc
      --let $con10_id= `SELECT CONNECTION_ID() AS con10`
      --let $con11_id= `SELECT CONNECTION_ID() AS con11`
      	CREATE TABLE t1 ( 
       col_datetime DATETIME(5) NOT NULL DEFAULT '1900-01-01 00:00:00',
       pk SERIAL ,
       PRIMARY KEY(pk)
       ) /* QNO 2 CON_ID 11 */;
      	CREATE TABLE t2 ( 
       col_char CHAR(59) NULL,
       pk INTEGER AUTO_INCREMENT ,
       PRIMARY KEY(pk)
       ) /* QNO 11 CON_ID 11 */;
      	CREATE TABLE t5 ( 
       pk SERIAL,
       col_char CHAR(174) NULL,
       PRIMARY KEY(pk)
       ) /* QNO 40 CON_ID 11 */;
      	CREATE TABLE t9 ( 
       col_datetime DATETIME(4) NULL,
       pk INTEGER AUTO_INCREMENT ,
       PRIMARY KEY(pk)
       ) /* QNO 81 CON_ID 11 */;
      --let $con20_id= `SELECT CONNECTION_ID() AS con20`
      	EXPLAIN UPDATE ( `t1` AS alias1, `t9` AS alias2, `t9` AS alias3 ) SET alias3.`pk` = 20 WHERE ( 'f' IN ( SELECT SQ1_alias1.`col_char` AS SQ1_cfield1 FROM ( `t5` AS SQ1_alias1 LEFT OUTER JOIN ( `t2` AS SQ1_alias2 INNER JOIN `t2` AS SQ1_alias3 ON (SQ1_alias3.`pk` = SQ1_alias2.`pk` ) ) ON (SQ1_alias3.`col_char` = SQ1_alias2.`col_char` ) ) WHERE SQ1_alias3.`col_char` IN ( SELECT 4 UNION SELECT 4 ) ) ) AND ( alias1.`pk` BETWEEN 98 AND ( 62 + 29 ) OR alias1.`pk` > 80 AND alias1.`pk` < ( 220 + 186 ) ) AND alias1.`col_datetime` IS NULL /* QNO 106 CON_ID 20 */;
      

      #3  <signal handler called>
      #4  0x000055bc00f9e996 in multi_update::initialize_tables (this=0x7f6c380da3f8, join=0x7f6c3805b868) at /data/src/10.3/sql/sql_update.cc:2012
      #5  0x000055bc00eec448 in JOIN::optimize_stage2 (this=0x7f6c3805b868) at /data/src/10.3/sql/sql_select.cc:1602
      #6  0x000055bc00eec1c8 in JOIN::optimize_inner (this=0x7f6c3805b868) at /data/src/10.3/sql/sql_select.cc:1557
      #7  0x000055bc00eea9f2 in JOIN::optimize (this=0x7f6c3805b868) at /data/src/10.3/sql/sql_select.cc:1129
      #8  0x000055bc00ef3eec in mysql_select (thd=0x7f6c38000b00, tables=0x7f6c380d7c98, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=268435460, result=0x7f6c380da3f8, unit=0x7f6c380d7c50, select_lex=0x7f6c380d8798) at /data/src/10.3/sql/sql_select.cc:3805
      #9  0x000055bc00f967a6 in st_select_lex_unit::exec (this=0x7f6c380d7c50) at /data/src/10.3/sql/sql_union.cc:1556
      #10 0x000055bc00f2c98f in mysql_explain_union (thd=0x7f6c38000b00, unit=0x7f6c380d7c50, result=0x7f6c380da3f8) at /data/src/10.3/sql/sql_select.cc:25419
      #11 0x000055bc00f2c7bd in select_describe (join=0x7f6c380da4c0, need_tmp_table=false, need_order=false, distinct=false, message=0x55bc01a1e3c8 "Impossible WHERE noticed after reading const tables") at /data/src/10.3/sql/sql_select.cc:25390
      #12 0x000055bc00f0cd86 in return_zero_rows (join=0x7f6c380da4c0, result=0x7f6c380da3f8, tables=..., fields=..., send_row=false, select_options=551097991300, info=0x55bc01a1e3c8 "Impossible WHERE noticed after reading const tables", having=0x0, all_fields=...) at /data/src/10.3/sql/sql_select.cc:13049
      #13 0x000055bc00ef360b in JOIN::exec_inner (this=0x7f6c380da4c0) at /data/src/10.3/sql/sql_select.cc:3560
      #14 0x000055bc00ef2d9e in JOIN::exec (this=0x7f6c380da4c0) at /data/src/10.3/sql/sql_select.cc:3419
      #15 0x000055bc00ef3f7f in mysql_select (thd=0x7f6c38000b00, tables=0x7f6c380156e0, wild_num=0, fields=..., conds=0x7f6c380d9fa8, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=551097991300, result=0x7f6c380da3f8, unit=0x7f6c38004818, select_lex=0x7f6c38004f50) at /data/src/10.3/sql/sql_select.cc:3819
      #16 0x000055bc00f9d6cb in mysql_multi_update (thd=0x7f6c38000b00, table_list=0x7f6c380156e0, fields=0x7f6c38005070, values=0x7f6c38005558, conds=0x7f6c380d9fa8, options=549755813892, handle_duplicates=DUP_ERROR, ignore=false, unit=0x7f6c38004818, select_lex=0x7f6c38004f50, result=0x7f6c7c38e810) at /data/src/10.3/sql/sql_update.cc:1677
      #17 0x000055bc00eac7d3 in mysql_execute_command (thd=0x7f6c38000b00) at /data/src/10.3/sql/sql_parse.cc:4623
      #18 0x000055bc00eb71d4 in mysql_parse (thd=0x7f6c38000b00, rawbuf=0x7f6c38014b38 "EXPLAIN UPDATE ( `t1` AS alias1, `t9` AS alias2, `t9` AS alias3 ) SET alias3.`pk` = 20 WHERE ( 'f' IN ( SELECT SQ1_alias1.`col_char` AS SQ1_cfield1 FROM ( `t5` AS SQ1_alias1 LEFT OUTER JOIN ( `t2` AS "..., length=556, parser_state=0x7f6c7c38f610, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:7959
      #19 0x000055bc00ea4b10 in dispatch_command (command=COM_QUERY, thd=0x7f6c38000b00, packet=0x7f6c3815fa91 "EXPLAIN UPDATE ( `t1` AS alias1, `t9` AS alias2, `t9` AS alias3 ) SET alias3.`pk` = 20 WHERE ( 'f' IN ( SELECT SQ1_alias1.`col_char` AS SQ1_cfield1 FROM ( `t5` AS SQ1_alias1 LEFT OUTER JOIN ( `t2` AS "..., packet_length=556, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1828
      #20 0x000055bc00ea3531 in do_command (thd=0x7f6c38000b00) at /data/src/10.3/sql/sql_parse.cc:1370
      #21 0x000055bc00ffbe92 in do_handle_one_connection (connect=0x55bc03d0d1b0) at /data/src/10.3/sql/sql_connect.cc:1420
      #22 0x000055bc00ffbc1f in handle_one_connection (arg=0x55bc03d0d1b0) at /data/src/10.3/sql/sql_connect.cc:1326
      #23 0x000055bc01483a40 in pfs_spawn_thread (arg=0x55bc03d29dc0) at /data/src/10.3/storage/perfschema/pfs.cc:1863
      #24 0x00007f6c8bca1494 in start_thread (arg=0x7f6c7c390700) at pthread_create.c:333
      #25 0x00007f6c8a08793f in clone () from /lib/x86_64-linux-gnu/libc.so.6
      

      Reliably reproducible, need to clean up and finalize.
      Previous versions aren't happy either, but they fail with memory lost and such.

      Attachments

        Issue Links

          Activity

            People

              elenst Elena Stepanova
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              1 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.