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

ALTER on a table with vector index attempts to bypass unsupported locking limitation, server crashes in THD::free_tmp_table_share

Details

    Description

      CREATE TABLE t (a INT PRIMARY KEY, v BLOB NOT NULL, VECTOR INDEX(v));
      ALTER TABLE t MODIFY a INT AUTO_INCREMENT, LOCK=NONE;
       
      # Cleanup
      DROP TABLE t;
      

      bb-11.6-MDEV-32887-vector fe9092a8

      #3  <signal handler called>
      #4  0x0000561eb4bb15ef in THD::free_tmp_table_share (this=0x62c0000c0218, share=0x61c00002c098, delete_table=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/temporary_tables.cc:1498
      #5  0x0000561eb4babf54 in THD::drop_temporary_table (this=0x62c0000c0218, table=0x6190000a2898, is_trans=0x0, delete_table=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/temporary_tables.cc:675
      #6  0x0000561eb470f779 in mysql_alter_table (thd=0x62c0000c0218, new_db=0x62c0000c4fe8, new_name=0x62c0000c5448, create_info=0x7fbc639b3be0, table_list=0x6290000e6388, recreate_info=0x7fbc639b3970, alter_info=0x7fbc639b3a30, order_num=0, order=0x0, ignore=false, if_exists=false) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_table.cc:12009
      #7  0x0000561eb48e0001 in Sql_cmd_alter_table::execute (this=0x6290000e6be0, thd=0x62c0000c0218) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_alter.cc:701
      #8  0x0000561eb43f0a7c in mysql_execute_command (thd=0x62c0000c0218, is_called_from_prepared_stmt=false) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_parse.cc:5846
      #9  0x0000561eb43fdb94 in mysql_parse (thd=0x62c0000c0218, rawbuf=0x6290000e6238 "ALTER TABLE t MODIFY a INT AUTO_INCREMENT, LOCK=NONE", length=52, parser_state=0x7fbc639b59f0) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_parse.cc:7873
      #10 0x0000561eb43d4bb6 in dispatch_command (command=COM_QUERY, thd=0x62c0000c0218, packet=0x629000253219 "ALTER TABLE t MODIFY a INT AUTO_INCREMENT, LOCK=NONE", packet_length=52, blocking=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_parse.cc:1892
      #11 0x0000561eb43d18ca in do_command (thd=0x62c0000c0218, blocking=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_parse.cc:1405
      #12 0x0000561eb48c0fd9 in do_handle_one_connection (connect=0x6080000034b8, put_in_cache=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_connect.cc:1448
      #13 0x0000561eb48c099a in handle_one_connection (arg=0x608000003438) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_connect.cc:1350
      #14 0x0000561eb5562d84 in pfs_spawn_thread (arg=0x617000005b98) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/storage/perfschema/pfs.cc:2198
      #15 0x00007fbc6eca8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #16 0x00007fbc6ed2861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      Without vector index ALTER fails with the usual

      ER_ALTER_OPERATION_NOT_SUPPORTED_REASON (1846): LOCK=NONE is not supported. Reason: CHANGE COLUMN ... AUTO_INCREMENT. Try LOCK=SHARED
      

      The problem is not specific to auto-increment, at least some other alter operations with the same restriction cause the same outcome.

      Attachments

        Issue Links

          Activity

            There are no comments yet on this issue.

            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.