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

Server crashes in in prep_alter_part_table on 2nd execution of PS

    Details

    • Sprint:
      10.0.34, 10.1.31

      Description

      --source include/have_partition.inc
       
      CREATE TABLE t1 (a INT) ENGINE=MyISAM PARTITION BY RANGE(a) (PARTITION p1 VALUES LESS THAN (0));
      ALTER TABLE t1 ADD PARTITION (PARTITION p2 VALUES LESS THAN (1));
      PREPARE stmt FROM 'ALTER TABLE t1 ADD PARTITION IF NOT EXISTS (PARTITION p2 VALUES LESS THAN (2))';
      EXECUTE stmt;
      EXECUTE stmt;
       
      # Cleanup
      DROP TABLE t1;
      

      10.0 6559ba71a564aec

      #3  <signal handler called>
      #4  0x00000000009aaa78 in prep_alter_part_table (thd=0x7ffba8aa2070, table=0x7ffba709e470, alter_info=0x7ffbb0b82830, create_info=0x7ffbb0b828c0, alter_ctx=0x7ffbb0b81c20, partition_changed=0x7ffbb0b8271b, fast_alter_table=0x7ffbb0b8271a) at /data/src/10.0/sql/sql_partition.cc:4857
      #5  0x0000000000703f27 in mysql_alter_table (thd=0x7ffba8aa2070, new_db=0x7ffba73d2bc8 "test", new_name=0x0, create_info=0x7ffbb0b828c0, table_list=0x7ffba73d25e8, alter_info=0x7ffbb0b82830, order_num=0, order=0x0, ignore=false) at /data/src/10.0/sql/sql_table.cc:8607
      #6  0x000000000076d365 in Sql_cmd_alter_table::execute (this=0x7ffba73d2fa0, thd=0x7ffba8aa2070) at /data/src/10.0/sql/sql_alter.cc:312
      #7  0x000000000065398b in mysql_execute_command (thd=0x7ffba8aa2070) at /data/src/10.0/sql/sql_parse.cc:5114
      #8  0x000000000066f1ec in Prepared_statement::execute (this=0x7ffba7127470, expanded_query=0x7ffbb0b83bd0, open_cursor=false) at /data/src/10.0/sql/sql_prepare.cc:3974
      #9  0x000000000066e2be in Prepared_statement::execute_loop (this=0x7ffba7127470, expanded_query=0x7ffbb0b83bd0, open_cursor=false, packet=0x0, packet_end=0x0) at /data/src/10.0/sql/sql_prepare.cc:3629
      #10 0x000000000066c5ac in mysql_sql_stmt_execute (thd=0x7ffba8aa2070) at /data/src/10.0/sql/sql_prepare.cc:2779
      #11 0x000000000064c708 in mysql_execute_command (thd=0x7ffba8aa2070) at /data/src/10.0/sql/sql_parse.cc:2563
      #12 0x0000000000656dc2 in mysql_parse (thd=0x7ffba8aa2070, rawbuf=0x7ffba70fa088 "EXECUTE stmt", length=12, parser_state=0x7ffbb0b84640) at /data/src/10.0/sql/sql_parse.cc:6569
      #13 0x0000000000649901 in dispatch_command (command=COM_QUERY, thd=0x7ffba8aa2070, packet=0x7ffba9fe5071 "EXECUTE stmt", packet_length=12) at /data/src/10.0/sql/sql_parse.cc:1296
      #14 0x0000000000648c01 in do_command (thd=0x7ffba8aa2070) at /data/src/10.0/sql/sql_parse.cc:999
      #15 0x0000000000768ab8 in do_handle_one_connection (thd_arg=0x7ffba8aa2070) at /data/src/10.0/sql/sql_connect.cc:1377
      #16 0x000000000076882a in handle_one_connection (arg=0x7ffba8aa2070) at /data/src/10.0/sql/sql_connect.cc:1292
      #17 0x0000000000ac9564 in pfs_spawn_thread (arg=0x7ffba89a2370) at /data/src/10.0/storage/perfschema/pfs.cc:1861
      #18 0x00007ffbb07b8494 in start_thread (arg=0x7ffbb0b85700) at pthread_create.c:333
      #19 0x00007ffbaeb7193f in clone () from /lib/x86_64-linux-gnu/libc.so.6
      

      Reproducible on older 10.0 versions as well.
      The test case is not applicable to 5.5 or MySQL because it uses IF NOT EXISTS in ALTER (and does not fail without it).

      Reproducible with MyISAM, Aria, InnoDB.

        Attachments

          Activity

            People

            • Assignee:
              holyfoot Alexey Botchkov
              Reporter:
              elenst Elena Stepanova
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: