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

crash in online_alter_end_trans with XA over vector indexes

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • N/A
    • 11.7.1
    • Vector search
    • None

    Description

      --source include/have_innodb.inc
       
      CREATE TABLE t1 (v VECTOR(1) NOT NULL, VECTOR(v)) ENGINE=InnoDB;
      INSERT INTO t1 VALUES(0x00000000);
      XA START 'x';
      --error ER_NO_SUCH_TABLE
      SELECT * FROM non_existing_table;
      DELETE FROM t1;
      XA END 'x';
      XA PREPARE 'x';
      

      bb-11.6-MDEV-32887-vector eff6bc39fcb6e1f691fa08b153d9ea44b9f77b54

      mysqltest: At line 10: query 'XA PREPARE 'x'' failed: ER_GET_ERRNO (1030): Got error 131 "Command not supported by the engine" from storage engine mhnsw
      

      With a slightly more complicated concurrent scenario involving a concurrent online alter, the server crashes or fails on an assertion. For now I assume it is a result of the same problem. The test case below is non-determnistic, although currently it fails for me every time. On different machines and builds it may require different volumes of inserted data.

      ---source include/have_innodb.inc
      --source include/have_sequence.inc
       
      CREATE TABLE t1 (v VECTOR(1) NOT NULL, VECTOR(v)) ENGINE=InnoDB;
      INSERT INTO t1 SELECT 0x00000000 AS v FROM seq_1_to_1000;
       
      --connect (con1,localhost,root,,)
      --send
        ALTER TABLE t1 ADD COLUMN x INT, ALGORITHM=COPY;
      --connection default
      XA START 'x';
      --error ER_NO_SUCH_TABLE
      SELECT * FROM non_existing_table;
      DELETE FROM t1;
      XA END 'x';
      --error ER_GET_ERRNO
      XA PREPARE 'x';
      --connection con1
      --reap
      

      non-debug build

      #2  <signal handler called>
      #3  0x000055bfe5c3ea01 in ilist<online_alter_cache_data, void>::empty (this=0x0) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/include/ilist.h:159
      #4  online_alter_end_trans (cache_list=..., thd=thd@entry=0x7efd28000c68, is_ending_transaction=is_ending_transaction@entry=true, commit=commit@entry=false) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/online_alter.cc:232
      #5  0x000055bfe5c3f353 in online_alter_rollback (thd=0x7efd28000c68, all=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/online_alter.cc:137
      #6  0x000055bfe5a7b255 in ha_rollback_trans (thd=thd@entry=0x7efd28000c68, all=all@entry=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/handler.cc:2343
      #7  0x000055bfe5a7b886 in ha_prepare (thd=thd@entry=0x7efd28000c68) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/handler.cc:1557
      #8  0x000055bfe5a02548 in trans_xa_prepare (thd=thd@entry=0x7efd28000c68) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/xa.cc:551
      #9  0x000055bfe57eff94 in mysql_execute_command (thd=thd@entry=0x7efd28000c68, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/sql_parse.cc:5707
      #10 0x000055bfe57f30b6 in mysql_parse (thd=0x7efd28000c68, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/sql_parse.cc:7873
      #11 0x000055bfe57f592d in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7efd28000c68, packet=packet@entry=0x7efd28008869 "XA PREPARE 'x'", packet_length=packet_length@entry=14, blocking=blocking@entry=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/sql_parse.cc:1991
      #12 0x000055bfe57f7864 in do_command (thd=0x7efd28000c68, blocking=blocking@entry=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/sql_parse.cc:1405
      #13 0x000055bfe5927117 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55bfe893f818, put_in_cache=put_in_cache@entry=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/sql_connect.cc:1448
      #14 0x000055bfe592748d in handle_one_connection (arg=arg@entry=0x55bfe893f818) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/sql/sql_connect.cc:1350
      #15 0x000055bfe5cddd5c in pfs_spawn_thread (arg=0x55bfe88f83b8) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel/storage/perfschema/pfs.cc:2198
      #16 0x00007efd56dc9044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #17 0x00007efd56e4961c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      debug build

      mariadbd: /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/online_alter.cc:136: Online_alter_cache_list& get_cache_list(transaction_participant*, THD*): Assertion `data' failed.
      241016 19:56:31 [ERROR] mysqld got signal 6 ;
       
      #9  0x00007f129d653e32 in __GI___assert_fail (assertion=0x55e80079c1c0 "data", file=0x55e80079c200 "/data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/online_alter.cc", line=136, function=0x55e80079c280 "Online_alter_cache_list& get_cache_list(transaction_participant*, THD*)") at ./assert/assert.c:101
      #10 0x000055e7feb8d228 in get_cache_list (ht=0x55e801e9a0a0 <online_alter_tp>, thd=0x62c0001e0218) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/online_alter.cc:136
      #11 0x000055e7feb8f4e8 in online_alter_rollback (thd=0x62c0001e0218, all=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/online_alter.cc:396
      #12 0x000055e7fe66ca20 in ha_rollback_trans (thd=0x62c0001e0218, all=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/handler.cc:2343
      #13 0x000055e7fe667bb3 in ha_prepare (thd=0x62c0001e0218) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/handler.cc:1557
      #14 0x000055e7fe4c8c90 in trans_xa_prepare (thd=0x62c0001e0218) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/xa.cc:551
      #15 0x000055e7fdceb661 in mysql_execute_command (thd=0x62c0001e0218, is_called_from_prepared_stmt=false) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_parse.cc:5707
      #16 0x000055e7fdcf953a in mysql_parse (thd=0x62c0001e0218, rawbuf=0x6290000fa238 "XA PREPARE 'x'", length=14, parser_state=0x7f128e6139f0) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_parse.cc:7873
      #17 0x000055e7fdcd055c in dispatch_command (command=COM_QUERY, thd=0x62c0001e0218, packet=0x629000280219 "XA PREPARE 'x'", packet_length=14, blocking=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_parse.cc:1892
      #18 0x000055e7fdccd270 in do_command (thd=0x62c0001e0218, blocking=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_parse.cc:1405
      #19 0x000055e7fe1bcc4b in do_handle_one_connection (connect=0x6080000048b8, put_in_cache=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_connect.cc:1448
      #20 0x000055e7fe1bc60c in handle_one_connection (arg=0x608000004838) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/sql/sql_connect.cc:1350
      #21 0x000055e7fee623dc in pfs_spawn_thread (arg=0x617000008218) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-asan/storage/perfschema/pfs.cc:2198
      #22 0x00007f129d6a8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #23 0x00007f129d72861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      Attachments

        Issue Links

          Activity

            People

              serg Sergei Golubchik
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              3 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.