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

Server crashes in in row_mysql_convert_row_to_innobase on CREATE .. SELECT

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.0.8
    • 10.0.10
    • None
    • None

    Description

      --source include/have_innodb.inc
       
      CREATE TABLE t1 (a VARCHAR(3)) ENGINE=InnoDB;
      INSERT INTO t1 VALUES ('foo'),('bar');
       
      FLUSH TABLES;
       
      CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1;

      With XtraDB, it crashes (sometimes takes more than one attempt):

      #3  <signal handler called>
      #4  0x00007f1e6ec353d2 in row_mysql_convert_row_to_innobase (row=0x7f1e834a67d8, prebuilt=0x7f1e834a6278, mysql_rec=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177") at 10.0/storage/xtradb/row/row0mysql.cc:543
      #5  0x00007f1e6ec367e0 in row_insert_for_mysql (mysql_rec=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177", prebuilt=0x7f1e834a6278) at 10.0/storage/xtradb/row/row0mysql.cc:1292
      #6  0x00007f1e6eb3c108 in ha_innodb::write_row (this=0x7f1e5d068088, record=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177") at 10.0/storage/xtradb/handler/ha_innodb.cc:7396
      #7  0x00000000008663e1 in handler::ha_write_row (this=0x7f1e5d068088, buf=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177") at 10.0/sql/handler.cc:5913
      #8  0x0000000000656ef2 in write_record (thd=0x7f1e6fbf6070, table=0x7f1e5bb22070, info=0x7f1e5d02c038) at 10.0/sql/sql_insert.cc:1876
      #9  0x000000000065b8e2 in select_insert::send_data (this=0x7f1e5d02c000, values=...) at 10.0/sql/sql_insert.cc:3630
      #10 0x00000000006d379e in end_send (join=0x7f1e5d02c0e0, join_tab=0x7f1e6fbfc7d8, end_of_records=false) at 10.0/sql/sql_select.cc:18530
      #11 0x00000000006d1589 in evaluate_join_record (join=0x7f1e5d02c0e0, join_tab=0x7f1e6fbfc4b0, error=0) at 10.0/sql/sql_select.cc:17638
      #12 0x00000000006d0e82 in sub_select (join=0x7f1e5d02c0e0, join_tab=0x7f1e6fbfc4b0, end_of_records=false) at 10.0/sql/sql_select.cc:17416
      #13 0x00000000006d06e7 in do_select (join=0x7f1e5d02c0e0, fields=0x7f1e6fbfa540, table=0x0, procedure=0x0) at 10.0/sql/sql_select.cc:17078
      #14 0x00000000006ae2be in JOIN::exec_inner (this=0x7f1e5d02c0e0) at 10.0/sql/sql_select.cc:3065
      #15 0x00000000006ab7d0 in JOIN::exec (this=0x7f1e5d02c0e0) at 10.0/sql/sql_select.cc:2355
      #16 0x00000000006aeb4f in mysql_select (thd=0x7f1e6fbf6070, rref_pointer_array=0x7f1e6fbfa6a0, tables=0x7f1e5d02ba08, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2416184064, result=0x7f1e5d02c000, unit=0x7f1e6fbf9d48, select_lex=0x7f1e6fbfa428) at 10.0/sql/sql_select.cc:3292
      #17 0x00000000006a527f in handle_select (thd=0x7f1e6fbf6070, lex=0x7f1e6fbf9c88, result=0x7f1e5d02c000, setup_tables_done_option=0) at 10.0/sql/sql_select.cc:372
      #18 0x000000000067360c in mysql_execute_command (thd=0x7f1e6fbf6070) at 10.0/sql/sql_parse.cc:3032
      #19 0x000000000067c9db in mysql_parse (thd=0x7f1e6fbf6070, rawbuf=0x7f1e5d02b088 "CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1", length=68, parser_state=0x7f1e85e76630) at 10.0/sql/sql_parse.cc:6447
      #20 0x000000000066f7a9 in dispatch_command (command=COM_QUERY, thd=0x7f1e6fbf6070, packet=0x7f1e6572e071 "CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1", packet_length=68) at 10.0/sql/sql_parse.cc:1308
      #21 0x000000000066eb4b in do_command (thd=0x7f1e6fbf6070) at 10.0/sql/sql_parse.cc:1005
      #22 0x00000000007880ed in do_handle_one_connection (thd_arg=0x7f1e6fbf6070) at 10.0/sql/sql_connect.cc:1379
      #23 0x0000000000787e40 in handle_one_connection (arg=0x7f1e6fbf6070) at 10.0/sql/sql_connect.cc:1293
      #24 0x0000000000a2cac5 in pfs_spawn_thread (arg=0x7f1e5bb0f350) at 10.0/storage/perfschema/pfs.cc:1853
      #25 0x00007f1e85b54b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
      #26 0x00007f1e8405fa7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

      Stack trace from:

      revision-id: sergii@pisem.net-20140228200458-2nzjwfzn554m5aja
      revno: 4017
      branch-nick: 10.0

      With InnoDB, it fails with an error:

      MariaDB [test]> CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1;
      ERROR 1005 (HY000): Can't create table `test`.`tmp` (errno: -1 "Internal error < 0 (Not system error)")

      Neither happens with MariaDB 5.5, MySQL 5.6, Percona 5.6.

      "TEMPORARY" is not important.

      Attachments

        Activity

          elenst Elena Stepanova created issue -
          elenst Elena Stepanova made changes -
          Field Original Value New Value
          elenst Elena Stepanova made changes -
          Summary Server crashes in in row_mysql_convert_row_to_innobase on creating temporary table Server crashes in in row_mysql_convert_row_to_innobase on CREATE .. SELECT
          elenst Elena Stepanova made changes -
          Description {code:sql}
          --source include/have_innodb.inc

          CREATE TABLE t1 (a VARCHAR(3)) ENGINE=InnoDB;
          INSERT INTO t1 VALUES ('foo'),('bar');

          FLUSH TABLES;

          CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1;
          {code}

          With XtraDB, it crashes (sometimes takes more than one attempt):
          {noformat}
          #3 <signal handler called>
          #4 0x00007f1e6ec353d2 in row_mysql_convert_row_to_innobase (row=0x7f1e834a67d8, prebuilt=0x7f1e834a6278, mysql_rec=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177") at 10.0/storage/xtradb/row/row0mysql.cc:543
          #5 0x00007f1e6ec367e0 in row_insert_for_mysql (mysql_rec=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177", prebuilt=0x7f1e834a6278) at 10.0/storage/xtradb/row/row0mysql.cc:1292
          #6 0x00007f1e6eb3c108 in ha_innodb::write_row (this=0x7f1e5d068088, record=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177") at 10.0/storage/xtradb/handler/ha_innodb.cc:7396
          #7 0x00000000008663e1 in handler::ha_write_row (this=0x7f1e5d068088, buf=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177") at 10.0/sql/handler.cc:5913
          #8 0x0000000000656ef2 in write_record (thd=0x7f1e6fbf6070, table=0x7f1e5bb22070, info=0x7f1e5d02c038) at 10.0/sql/sql_insert.cc:1876
          #9 0x000000000065b8e2 in select_insert::send_data (this=0x7f1e5d02c000, values=...) at 10.0/sql/sql_insert.cc:3630
          #10 0x00000000006d379e in end_send (join=0x7f1e5d02c0e0, join_tab=0x7f1e6fbfc7d8, end_of_records=false) at 10.0/sql/sql_select.cc:18530
          #11 0x00000000006d1589 in evaluate_join_record (join=0x7f1e5d02c0e0, join_tab=0x7f1e6fbfc4b0, error=0) at 10.0/sql/sql_select.cc:17638
          #12 0x00000000006d0e82 in sub_select (join=0x7f1e5d02c0e0, join_tab=0x7f1e6fbfc4b0, end_of_records=false) at 10.0/sql/sql_select.cc:17416
          #13 0x00000000006d06e7 in do_select (join=0x7f1e5d02c0e0, fields=0x7f1e6fbfa540, table=0x0, procedure=0x0) at 10.0/sql/sql_select.cc:17078
          #14 0x00000000006ae2be in JOIN::exec_inner (this=0x7f1e5d02c0e0) at 10.0/sql/sql_select.cc:3065
          #15 0x00000000006ab7d0 in JOIN::exec (this=0x7f1e5d02c0e0) at 10.0/sql/sql_select.cc:2355
          #16 0x00000000006aeb4f in mysql_select (thd=0x7f1e6fbf6070, rref_pointer_array=0x7f1e6fbfa6a0, tables=0x7f1e5d02ba08, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2416184064, result=0x7f1e5d02c000, unit=0x7f1e6fbf9d48, select_lex=0x7f1e6fbfa428) at 10.0/sql/sql_select.cc:3292
          #17 0x00000000006a527f in handle_select (thd=0x7f1e6fbf6070, lex=0x7f1e6fbf9c88, result=0x7f1e5d02c000, setup_tables_done_option=0) at 10.0/sql/sql_select.cc:372
          #18 0x000000000067360c in mysql_execute_command (thd=0x7f1e6fbf6070) at 10.0/sql/sql_parse.cc:3032
          #19 0x000000000067c9db in mysql_parse (thd=0x7f1e6fbf6070, rawbuf=0x7f1e5d02b088 "CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1", length=68, parser_state=0x7f1e85e76630) at 10.0/sql/sql_parse.cc:6447
          #20 0x000000000066f7a9 in dispatch_command (command=COM_QUERY, thd=0x7f1e6fbf6070, packet=0x7f1e6572e071 "CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1", packet_length=68) at 10.0/sql/sql_parse.cc:1308
          #21 0x000000000066eb4b in do_command (thd=0x7f1e6fbf6070) at 10.0/sql/sql_parse.cc:1005
          #22 0x00000000007880ed in do_handle_one_connection (thd_arg=0x7f1e6fbf6070) at 10.0/sql/sql_connect.cc:1379
          #23 0x0000000000787e40 in handle_one_connection (arg=0x7f1e6fbf6070) at 10.0/sql/sql_connect.cc:1293
          #24 0x0000000000a2cac5 in pfs_spawn_thread (arg=0x7f1e5bb0f350) at 10.0/storage/perfschema/pfs.cc:1853
          #25 0x00007f1e85b54b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
          #26 0x00007f1e8405fa7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
          {noformat}

          Stack trace from:
          {noformat}
          revision-id: sergii@pisem.net-20140228200458-2nzjwfzn554m5aja
          revno: 4017
          branch-nick: 10.0
          {noformat}

          With InnoDB, it fails with an error:
          {code:sql}
          MariaDB [test]> CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1;
          ERROR 1005 (HY000): Can't create table `test`.`tmp` (errno: -1 "Internal error < 0 (Not system error)")
          {code}

          Neither happens with MariaDB 5.5, MySQL 5.6, Percona 5.6.

          {code:sql}
          --source include/have_innodb.inc

          CREATE TABLE t1 (a VARCHAR(3)) ENGINE=InnoDB;
          INSERT INTO t1 VALUES ('foo'),('bar');

          FLUSH TABLES;

          CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1;
          {code}

          With XtraDB, it crashes (sometimes takes more than one attempt):
          {noformat}
          #3 <signal handler called>
          #4 0x00007f1e6ec353d2 in row_mysql_convert_row_to_innobase (row=0x7f1e834a67d8, prebuilt=0x7f1e834a6278, mysql_rec=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177") at 10.0/storage/xtradb/row/row0mysql.cc:543
          #5 0x00007f1e6ec367e0 in row_insert_for_mysql (mysql_rec=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177", prebuilt=0x7f1e834a6278) at 10.0/storage/xtradb/row/row0mysql.cc:1292
          #6 0x00007f1e6eb3c108 in ha_innodb::write_row (this=0x7f1e5d068088, record=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177") at 10.0/storage/xtradb/handler/ha_innodb.cc:7396
          #7 0x00000000008663e1 in handler::ha_write_row (this=0x7f1e5d068088, buf=0x7f1e5ba79f88 "\375\245\245\245\245\245\245\245\377\245\245\245\245\245\245\245\250\237\247[\036\177") at 10.0/sql/handler.cc:5913
          #8 0x0000000000656ef2 in write_record (thd=0x7f1e6fbf6070, table=0x7f1e5bb22070, info=0x7f1e5d02c038) at 10.0/sql/sql_insert.cc:1876
          #9 0x000000000065b8e2 in select_insert::send_data (this=0x7f1e5d02c000, values=...) at 10.0/sql/sql_insert.cc:3630
          #10 0x00000000006d379e in end_send (join=0x7f1e5d02c0e0, join_tab=0x7f1e6fbfc7d8, end_of_records=false) at 10.0/sql/sql_select.cc:18530
          #11 0x00000000006d1589 in evaluate_join_record (join=0x7f1e5d02c0e0, join_tab=0x7f1e6fbfc4b0, error=0) at 10.0/sql/sql_select.cc:17638
          #12 0x00000000006d0e82 in sub_select (join=0x7f1e5d02c0e0, join_tab=0x7f1e6fbfc4b0, end_of_records=false) at 10.0/sql/sql_select.cc:17416
          #13 0x00000000006d06e7 in do_select (join=0x7f1e5d02c0e0, fields=0x7f1e6fbfa540, table=0x0, procedure=0x0) at 10.0/sql/sql_select.cc:17078
          #14 0x00000000006ae2be in JOIN::exec_inner (this=0x7f1e5d02c0e0) at 10.0/sql/sql_select.cc:3065
          #15 0x00000000006ab7d0 in JOIN::exec (this=0x7f1e5d02c0e0) at 10.0/sql/sql_select.cc:2355
          #16 0x00000000006aeb4f in mysql_select (thd=0x7f1e6fbf6070, rref_pointer_array=0x7f1e6fbfa6a0, tables=0x7f1e5d02ba08, wild_num=0, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2416184064, result=0x7f1e5d02c000, unit=0x7f1e6fbf9d48, select_lex=0x7f1e6fbfa428) at 10.0/sql/sql_select.cc:3292
          #17 0x00000000006a527f in handle_select (thd=0x7f1e6fbf6070, lex=0x7f1e6fbf9c88, result=0x7f1e5d02c000, setup_tables_done_option=0) at 10.0/sql/sql_select.cc:372
          #18 0x000000000067360c in mysql_execute_command (thd=0x7f1e6fbf6070) at 10.0/sql/sql_parse.cc:3032
          #19 0x000000000067c9db in mysql_parse (thd=0x7f1e6fbf6070, rawbuf=0x7f1e5d02b088 "CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1", length=68, parser_state=0x7f1e85e76630) at 10.0/sql/sql_parse.cc:6447
          #20 0x000000000066f7a9 in dispatch_command (command=COM_QUERY, thd=0x7f1e6fbf6070, packet=0x7f1e6572e071 "CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1", packet_length=68) at 10.0/sql/sql_parse.cc:1308
          #21 0x000000000066eb4b in do_command (thd=0x7f1e6fbf6070) at 10.0/sql/sql_parse.cc:1005
          #22 0x00000000007880ed in do_handle_one_connection (thd_arg=0x7f1e6fbf6070) at 10.0/sql/sql_connect.cc:1379
          #23 0x0000000000787e40 in handle_one_connection (arg=0x7f1e6fbf6070) at 10.0/sql/sql_connect.cc:1293
          #24 0x0000000000a2cac5 in pfs_spawn_thread (arg=0x7f1e5bb0f350) at 10.0/storage/perfschema/pfs.cc:1853
          #25 0x00007f1e85b54b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
          #26 0x00007f1e8405fa7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
          {noformat}

          Stack trace from:
          {noformat}
          revision-id: sergii@pisem.net-20140228200458-2nzjwfzn554m5aja
          revno: 4017
          branch-nick: 10.0
          {noformat}

          With InnoDB, it fails with an error:
          {code:sql}
          MariaDB [test]> CREATE TEMPORARY TABLE tmp ENGINE=InnoDB AS SELECT VALUES(a) FROM t1;
          ERROR 1005 (HY000): Can't create table `test`.`tmp` (errno: -1 "Internal error < 0 (Not system error)")
          {code}

          Neither happens with MariaDB 5.5, MySQL 5.6, Percona 5.6.

          "TEMPORARY" is not important.
          elenst Elena Stepanova made changes -
          Fix Version/s 10.0.10 [ 14500 ]
          serg Sergei Golubchik made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          serg Sergei Golubchik made changes -
          Resolution Fixed [ 1 ]
          Status In Progress [ 3 ] Closed [ 6 ]
          serg Sergei Golubchik made changes -
          Workflow defaullt [ 35806 ] MariaDB v2 [ 42658 ]
          ratzpo Rasmus Johansson (Inactive) made changes -
          Workflow MariaDB v2 [ 42658 ] MariaDB v3 [ 61638 ]
          serg Sergei Golubchik made changes -
          Workflow MariaDB v3 [ 61638 ] MariaDB v4 [ 147586 ]

          People

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