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

OPTIMIZE TABLE crashes with ib_vector_size(optim->words) > 0 on FULLTEXT index with collation-equal words

    XMLWordPrintable

Details

    Description

      the first part of the test is MDEV-35172, but when both words deleted before optimize -> assertion

      --source include/have_innodb.inc
       
      SET NAMES utf8mb4;
      SET GLOBAL innodb_optimize_fulltext_only = ON;
       
      CREATE TABLE t1 (
        id INT PRIMARY KEY,
        a TEXT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci,
        FULLTEXT KEY (a)
      ) ENGINE=InnoDB;
       
      INSERT INTO t1 VALUES (1, 'etude'), (3, 'zulu');
      INSERT INTO t1 VALUES (2, 'étude');
       
      SELECT id FROM t1 WHERE MATCH(a) AGAINST('etude' IN BOOLEAN MODE);
       
      DELETE FROM t1 WHERE id = 3;
      SELECT id FROM t1 WHERE MATCH(a) AGAINST('etude' IN BOOLEAN MODE);
      OPTIMIZE TABLE t1;
       
      SELECT id FROM t1 WHERE MATCH(a) AGAINST('etude' IN BOOLEAN MODE);
      SELECT id FROM t1;
       
      DROP TABLE t1;
       
      CREATE TABLE t2 (
        id INT PRIMARY KEY,
        a TEXT CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci,
        FULLTEXT KEY (a)
      ) ENGINE=InnoDB;
       
      INSERT INTO t2 VALUES (1, 'etude');
      OPTIMIZE TABLE t2;
      INSERT INTO t2 VALUES (2, 'étude');
      OPTIMIZE TABLE t2;
      DELETE FROM t2;
       
      OPTIMIZE TABLE t2;
       
      DROP TABLE t2;
      

      Server version: 10.11.19-MariaDB-asan-debug-log source revision: 60ea725e7ec8e5f5f4c7615c7aacba1eee94cb97
       
      #10 0x00007f24ea0288ff in __GI_abort () at ./stdlib/abort.c:79
      #11 0x0000615a183e8c7c in ut_dbg_assertion_failed (expr=expr@entry=0x615a192c1e80 "ib_vector_size(optim->words) > 0", file=file@entry=0x615a192bec80 "/10.11/src/storage/innobase/fts/fts0opt.cc", line=line@entry=1810) at /10.11/src/storage/innobase/ut/ut0dbg.cc:60
      #12 0x0000615a18639a3b in fts_optimize_words (optim=optim@entry=0x5170000bf7a0, index=index@entry=0x516000b40120, word=word@entry=0x7724cfcab820) at /10.11/src/storage/innobase/fts/fts0opt.cc:1810
      #13 0x0000615a1863a475 in fts_optimize_index (optim=optim@entry=0x5170000bf7a0, index=0x516000b40120) at /10.11/src/storage/innobase/fts/fts0opt.cc:1998
      #14 0x0000615a1863a78c in fts_optimize_indexes (optim=optim@entry=0x5170000bf7a0) at /10.11/src/storage/innobase/fts/fts0opt.cc:2300
      #15 0x0000615a1863ad16 in fts_optimize_table (table=0x51800003fd20) at /10.11/src/storage/innobase/fts/fts0opt.cc:2477
      #16 0x0000615a17edeb99 in ha_innobase::optimize (this=0x5250002c8948, thd=0x52c0001f0218) at /10.11/src/storage/innobase/handler/ha_innodb.cc:15389
      #17 0x0000615a17676e52 in handler::ha_optimize (this=0x5250002c8948, thd=thd@entry=0x52c0001f0218, check_opt=check_opt@entry=0x52c0001f5a20) at /10.11/src/sql/handler.cc:5381
      #18 0x0000615a172bb704 in mysql_admin_table (thd=thd@entry=0x52c0001f0218, tables=tables@entry=0x52d0000a0528, check_opt=check_opt@entry=0x52c0001f5a20, operator_name=operator_name@entry=0x615a199cb860 <msg_optimize>, lock_type=lock_type@entry=TL_WRITE, org_open_for_modify=org_open_for_modify@entry=true, repair_table_use_frm=<optimized out>, extra_open_options=<optimized out>, prepare_func=<optimized out>, operator_func=<optimized out>, view_operator_func=<optimized out>, is_cmd_replicated=<optimized out>) at /10.11/src/sql/sql_admin.cc:918
      #19 0x0000615a172c1284 in Sql_cmd_optimize_table::execute (this=<optimized out>, thd=<optimized out>) at /10.11/src/sql/sql_admin.cc:1646
      #20 0x0000615a16e81bce in mysql_execute_command (thd=thd@entry=0x52c0001f0218, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /10.11/src/sql/sql_parse.cc:6190
      #21 0x0000615a16e8382a in mysql_parse (thd=thd@entry=0x52c0001f0218, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7724d0153150) at /10.11/src/sql/sql_parse.cc:8210
      #22 0x0000615a16e876cf in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x52c0001f0218, packet=packet@entry=0x52900028a219 "", packet_length=packet_length@entry=17, blocking=blocking@entry=true) at /10.11/src/sql/sql_parse.cc:1924
      #23 0x0000615a16e8c147 in do_command (thd=thd@entry=0x52c0001f0218, blocking=blocking@entry=true) at /10.11/src/sql/sql_parse.cc:1434
      #24 0x0000615a1728868e in do_handle_one_connection (connect=<optimized out>, connect@entry=0x508000014938, put_in_cache=put_in_cache@entry=true) at /10.11/src/sql/sql_connect.cc:1500
      #25 0x0000615a17288b67 in handle_one_connection (arg=arg@entry=0x508000014938) at /10.11/src/sql/sql_connect.cc:1412
      #26 0x0000615a17cea56b in pfs_spawn_thread (arg=arg@entry=0x517000008598) at /10.11/src/storage/perfschema/pfs.cc:2201
      #27 0x00007f24eb05ea42 in asan_thread_start (arg=0x7724dc1fe000) at ../../../../src/libsanitizer/asan/asan_interceptors.cpp:234
      #28 0x00007f24ea09cb84 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
      #29 0x00007f24ea129ecc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
       
      
      

      reported by Florian David

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              alice Alice Sherepa
              Marko Mäkelä Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 0d
                  0d
                  Remaining:
                  Time Spent - 0.5d Remaining Estimate - 2d
                  2d
                  Logged:
                  Time Spent - 0.5d Remaining Estimate - 2d
                  0.5d

                  Git Integration

                    Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.