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

Server crashes in extra_cb or in ha_partition::try_semi_consistent_read or in ha_partition::info

    Details

      Description

      Please note that SIMULTANEOUS_ASSIGNMENT doesn't just affect the outcome of the test case, but changes the behavior of the UPDATE statement (error vs success).

      Test case 1

      --source include/have_partition.inc
       
      CREATE TABLE t1 (
          a INT,
          f DATE,
          t DATE,
          PERIOD FOR app(f,t),
          s TIMESTAMP(6) AS ROW START,
          e TIMESTAMP(6) AS ROW END,
          PERIOD FOR SYSTEM_TIME(s,e)
      ) WITH SYSTEM VERSIONING
        ENGINE=MyISAM
        PARTITION BY system_time ( PARTITION p1 HISTORY, PARTITION pn CURRENT );
       
      INSERT INTO t1 (f,t) VALUES ('2012-12-12','2013-12-12');
      SET SQL_MODE= 'SIMULTANEOUS_ASSIGNMENT';
      --error 0,ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
      UPDATE t1 SET e = '2014-12-12 00:00:00';
      --error ER_NO_DEFAULT_FOR_FIELD
      INSERT INTO t1 (a) VALUES (1);
       
      # Cleanup
      DROP TABLE t1;
      

      10.4 09e9f884

      #3  <signal handler called>
      #4  0x0000563d264692ea in extra_cb (h=0x420fffffff7f9148, operation=0x7f7ba03a4514) at /data/src/10.4/sql/ha_partition.cc:8482
      #5  0x0000563d26469e88 in ha_partition::loop_partitions (this=0x7f7b90138128, callback=0x563d264692d6 <extra_cb(handler*, void*)>, param=0x7f7ba03a4514) at /data/src/10.4/sql/ha_partition.cc:9146
      #6  0x0000563d26469802 in ha_partition::extra (this=0x7f7b90138128, operation=HA_EXTRA_DETACH_CHILDREN) at /data/src/10.4/sql/ha_partition.cc:8960
      #7  0x0000563d258fe4bf in close_thread_tables (thd=0x7f7b90000b00) at /data/src/10.4/sql/sql_base.cc:914
      #8  0x0000563d259a7b63 in mysql_execute_command (thd=0x7f7b90000b00) at /data/src/10.4/sql/sql_parse.cc:6164
      #9  0x0000563d259ac7ed in mysql_parse (thd=0x7f7b90000b00, rawbuf=0x7f7b90013108 "INSERT INTO t1 (a) VALUES (1)", length=29, parser_state=0x7f7ba03a5180, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7908
      #10 0x0000563d25998a96 in dispatch_command (command=COM_QUERY, thd=0x7f7b90000b00, packet=0x7f7b90008311 "INSERT INTO t1 (a) VALUES (1)", packet_length=29, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1843
      #11 0x0000563d259971dc in do_command (thd=0x7f7b90000b00) at /data/src/10.4/sql/sql_parse.cc:1360
      #12 0x0000563d25b10716 in do_handle_one_connection (connect=0x563d28639cb0) at /data/src/10.4/sql/sql_connect.cc:1404
      #13 0x0000563d25b10465 in handle_one_connection (arg=0x563d28639cb0) at /data/src/10.4/sql/sql_connect.cc:1306
      #14 0x0000563d2643bb09 in pfs_spawn_thread (arg=0x563d2869d630) at /data/src/10.4/storage/perfschema/pfs.cc:1862
      #15 0x00007f7ba7d484a4 in start_thread (arg=0x7f7ba03a6700) at pthread_create.c:456
      #16 0x00007f7ba6290d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
      

      Test case 2

      --source include/have_partition.inc
      --source include/have_innodb.inc
       
      CREATE TABLE t1 (
          a INT,
          f DATE,
          t DATE,
          PERIOD FOR app(f,t),
          s TIMESTAMP(6) AS ROW START,
          e TIMESTAMP(6) AS ROW END,
          PERIOD FOR SYSTEM_TIME(s,e)
      ) WITH SYSTEM VERSIONING
        ENGINE=InnoDB
        PARTITION BY system_time ( PARTITION p1 HISTORY, PARTITION pn CURRENT );
       
      INSERT INTO t1 (f,t) VALUES ('2012-12-12','2013-12-12');
      SET SQL_MODE= 'SIMULTANEOUS_ASSIGNMENT';
      --error 0,ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
      UPDATE t1 SET e = '2014-12-12 00:00:00';
      --error ER_NO_DEFAULT_FOR_FIELD
      INSERT INTO t1 (a) VALUES (1);
       
      # Cleanup
      DROP TABLE t1;
      

      10.4 09e9f884

      #3  <signal handler called>
      #4  0x0000556188e6b7be in ha_partition::try_semi_consistent_read (this=0x7f740414e898, yes=false) at /data/src/10.4/sql/ha_partition.cc:4203
      #5  0x00005561884b3b72 in mysql_update (thd=0x7f7404000b00, table_list=0x7f7404013200, fields=..., values=..., conds=0x0, order_num=0, order=0x0, limit=18446744073709551614, ignore=false, found_return=0x7f745015c860, updated_return=0x7f745015c920) at /data/src/10.4/sql/sql_update.cc:1213
      #6  0x00005561883ae196 in mysql_execute_command (thd=0x7f7404000b00) at /data/src/10.4/sql/sql_parse.cc:4376
      #7  0x00005561883ba7ed in mysql_parse (thd=0x7f7404000b00, rawbuf=0x7f7404013108 "UPDATE t1 SET e = '2014-12-12 00:00:00'", length=39, parser_state=0x7f745015d180, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7908
      #8  0x00005561883a6a96 in dispatch_command (command=COM_QUERY, thd=0x7f7404000b00, packet=0x7f740419dca1 "UPDATE t1 SET e = '2014-12-12 00:00:00'", packet_length=39, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1843
      #9  0x00005561883a51dc in do_command (thd=0x7f7404000b00) at /data/src/10.4/sql/sql_parse.cc:1360
      #10 0x000055618851e716 in do_handle_one_connection (connect=0x55618c5cab30) at /data/src/10.4/sql/sql_connect.cc:1404
      #11 0x000055618851e465 in handle_one_connection (arg=0x55618c5cab30) at /data/src/10.4/sql/sql_connect.cc:1306
      #12 0x0000556188e49b09 in pfs_spawn_thread (arg=0x55618c5494c0) at /data/src/10.4/storage/perfschema/pfs.cc:1862
      #13 0x00007f7456b5a4a4 in start_thread (arg=0x7f745015e700) at pthread_create.c:456
      #14 0x00007f74550a2d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
      

      Test case 3

      --source include/have_partition.inc
       
      CREATE TABLE t1 (
          a INT,
          f DATE,
          t DATE,
          PERIOD FOR app(f,t),
          s TIMESTAMP(6) AS ROW START,
          e TIMESTAMP(6) AS ROW END,
          PERIOD FOR SYSTEM_TIME(s,e)
      ) WITH SYSTEM VERSIONING
        ENGINE=MyISAM
        PARTITION BY system_time ( PARTITION p1 HISTORY, PARTITION pn CURRENT );
       
      INSERT INTO t1 (f,t) VALUES ('2012-12-12','2013-12-12');
      SET SQL_MODE= 'SIMULTANEOUS_ASSIGNMENT';
      --error 0,ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN
      UPDATE t1 SET e = '2014-12-12 00:00:00';
      SELECT * FROM t1;
       
      # Cleanup
      DROP TABLE t1;
      

      10.4 09e9f884

      #3  <signal handler called>
      #4  0x000055b6bc65f694 in ha_partition::info (this=0x7f4754138128, flag=18) at /data/src/10.4/sql/ha_partition.cc:8209
      #5  0x000055b6bbcc5089 in TABLE_LIST::fetch_number_of_rows (this=0x7f4754013750) at /data/src/10.4/sql/table.cc:8872
      #6  0x000055b6bbbe6226 in make_join_statistics (join=0x7f4754014718, tables_list=..., keyuse_array=0x7f4754014a08) at /data/src/10.4/sql/sql_select.cc:4827
      #7  0x000055b6bbbdcdf4 in JOIN::optimize_inner (this=0x7f4754014718) at /data/src/10.4/sql/sql_select.cc:2193
      #8  0x000055b6bbbdaa64 in JOIN::optimize (this=0x7f4754014718) at /data/src/10.4/sql/sql_select.cc:1563
      #9  0x000055b6bbbe585a in mysql_select (thd=0x7f4754000b00, tables=0x7f4754013750, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7f47540146f0, unit=0x7f4754004a30, select_lex=0x7f4754013190) at /data/src/10.4/sql/sql_select.cc:4591
      #10 0x000055b6bbbd5ee2 in handle_select (thd=0x7f4754000b00, lex=0x7f4754004968, result=0x7f47540146f0, setup_tables_done_option=0) at /data/src/10.4/sql/sql_select.cc:425
      #11 0x000055b6bbb9fa59 in execute_sqlcom_select (thd=0x7f4754000b00, all_tables=0x7f4754013750) at /data/src/10.4/sql/sql_parse.cc:6356
      #12 0x000055b6bbb958a0 in mysql_execute_command (thd=0x7f4754000b00) at /data/src/10.4/sql/sql_parse.cc:3898
      #13 0x000055b6bbba37ed in mysql_parse (thd=0x7f4754000b00, rawbuf=0x7f4754013108 "SELECT * FROM t1", length=16, parser_state=0x7f476461a180, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7908
      #14 0x000055b6bbb8fa96 in dispatch_command (command=COM_QUERY, thd=0x7f4754000b00, packet=0x7f4754008311 "SELECT * FROM t1", packet_length=16, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1843
      #15 0x000055b6bbb8e1dc in do_command (thd=0x7f4754000b00) at /data/src/10.4/sql/sql_parse.cc:1360
      #16 0x000055b6bbd07716 in do_handle_one_connection (connect=0x55b6beb6bcc0) at /data/src/10.4/sql/sql_connect.cc:1404
      #17 0x000055b6bbd07465 in handle_one_connection (arg=0x55b6beb6bcc0) at /data/src/10.4/sql/sql_connect.cc:1306
      #18 0x000055b6bc632b09 in pfs_spawn_thread (arg=0x55b6bebcf640) at /data/src/10.4/storage/perfschema/pfs.cc:1862
      #19 0x00007f476bfbd4a4 in start_thread (arg=0x7f476461b700) at pthread_create.c:456
      #20 0x00007f476a505d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                nikitamalyavin Nikita Malyavin
                Reporter:
                elenst Elena Stepanova
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: