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

    XMLWordPrintable

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

            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.