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

Server crash in online alter upon concurrent ALTER and DML on table with vector field

    XMLWordPrintable

Details

    Description

      The test case uses debug sync points and thus is only usable on a debug build, where it produces an assertion failure. The issue itself isn't limited to debug, non-debug builds crash on similar concurrent (non-deterministic) test cases.

      --source include/have_debug_sync.inc
       
      CREATE TABLE t (pk INT PRIMARY KEY, v VECTOR(1), b BLOB DEFAULT '1');
      INSERT INTO t (pk, v) VALUES (1,0x30303030);
       
      --connect (con1,localhost,root,,)
      set debug_sync= 'alter_table_online_progress SIGNAL there WAIT_FOR go';
      --send
        ALTER TABLE t MODIFY COLUMN b INT, ALGORITHM=COPY;
       
      --connection default
      set debug_sync= 'now WAIT_FOR there';
      INSERT INTO t (pk, v) VALUES (2,0x31313131);
      set debug_sync= 'now SIGNAL go';
      --connection con1
      --reap
       
      # Cleanup
      DROP TABLE t;
      --disconnect con1
      

      bb-11.6-MDEV-32887-vector 1ec610ffa3bffdc25bd8cc18b48f3bdcf17e259d

      mariadbd: /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/rpl_record.cc:469: int unpack_row(const rpl_group_info*, TABLE*, uint, const uchar*, const MY_BITMAP*, const uchar**, ulong*, const uchar*): Assertion `result' failed.
      241018 20:36:24 [ERROR] mysqld got signal 6 ;
       
      #10 0x00007fddf2253e32 in __GI___assert_fail (assertion=0x558421b8ba95 "result", file=0x558421da5628 "/data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/rpl_record.cc", line=469, function=0x558421da5808 "int unpack_row(const rpl_group_info*, TABLE*, uint, const uchar*, const MY_BITMAP*, const uchar**, ulong*, const uchar*)") at ./assert/assert.c:101
      #11 0x0000558420b7c1ca in unpack_row (rgi=rgi@entry=0x7fdde56ef6e0, table=0x7fddd401d878, colcnt=3, row_data=0x7fddd4024058 "\370\002", cols=cols@entry=0x7fddd40135e0, current_row_end=current_row_end@entry=0x7fddd4013698, master_reclength=0x7fddd4013628, row_end=0x7fddd4024065 "\245\245\245u") at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/rpl_record.cc:469
      #12 0x0000558420b73400 in Rows_log_event::unpack_current_row (this=this@entry=0x7fddd4013578, rgi=rgi@entry=0x7fdde56ef6e0) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/log_event.h:4927
      #13 0x0000558420b4f64e in Rows_log_event::write_row (this=this@entry=0x7fddd4013578, rgi=rgi@entry=0x7fdde56ef6e0, overwrite=overwrite@entry=false) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/log_event_server.cc:6758
      #14 0x0000558420b51f3c in Write_rows_log_event::do_exec_row (this=0x7fddd4013578, rgi=0x7fdde56ef6e0) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/log_event_server.cc:7089
      #15 0x0000558420b45229 in Rows_log_event::do_apply_event (this=0x7fddd4013578, rgi=0x7fdde56ef6e0) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/log_event_server.cc:5176
      #16 0x0000558420afa47f in Log_event::apply_event (this=this@entry=0x7fddd4013578, rgi=rgi@entry=0x7fdde56ef6e0) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/log_event.cc:3946
      #17 0x000055841fa850f7 in online_alter_read_from_binlog (thd=thd@entry=0x7fddd4000d58, rgi=rgi@entry=0x7fdde56ef6e0, log=log@entry=0x7fddd4025930, found_rows=found_rows@entry=0x7fdde56f3d90) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/sql_table.cc:12123
      #18 0x000055841fadbc57 in copy_data_between_tables (thd=thd@entry=0x7fddd4000d58, from=from@entry=0x7fddd003dd38, to=to@entry=0x7fddd401d878, ignore=<optimized out>, order_num=order_num@entry=0, order=order@entry=0x0, copied=<optimized out>, deleted=<optimized out>, alter_info=<optimized out>, alter_ctx=<optimized out>, online=true, start_alter_id=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/sql_table.cc:12631
      #19 0x000055841fae4573 in mysql_alter_table (thd=thd@entry=0x7fddd4000d58, new_db=new_db@entry=0x7fddd4005b28, new_name=new_name@entry=0x7fddd4005f88, create_info=create_info@entry=0x7fdde56f6b60, table_list=<optimized out>, table_list@entry=0x7fddd40159a0, recreate_info=recreate_info@entry=0x7fdde56f69b0, alter_info=<optimized out>, order_num=<optimized out>, order=<optimized out>, ignore=<optimized out>, if_exists=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/sql_table.cc:11574
      #20 0x000055841fccc54a in Sql_cmd_alter_table::execute (this=<optimized out>, thd=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/sql_alter.cc:701
      #21 0x000055841f7a35a0 in mysql_execute_command (thd=thd@entry=0x7fddd4000d58, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/sql_parse.cc:5846
      #22 0x000055841f7a6828 in mysql_parse (thd=thd@entry=0x7fddd4000d58, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7fdde56f7440) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/sql_parse.cc:7873
      #23 0x000055841f7ad1fc in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7fddd4000d58, packet=packet@entry=0x7fddd400b3c9 "", packet_length=packet_length@entry=49, blocking=blocking@entry=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/sql_parse.cc:1892
      #24 0x000055841f7b59ed in do_command (thd=0x7fddd4000d58, blocking=blocking@entry=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/sql_parse.cc:1405
      #25 0x000055841fcb0960 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x558426ac73a8, put_in_cache=put_in_cache@entry=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/sql_connect.cc:1448
      #26 0x000055841fcb1816 in handle_one_connection (arg=0x558426ac73a8) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/sql/sql_connect.cc:1350
      #27 0x0000558420e7f093 in pfs_spawn_thread (arg=0x558426a96c28) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-ubsan/storage/perfschema/pfs.cc:2198
      #28 0x00007fddf22a8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #29 0x00007fddf232861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      Stack trace from a concurrent non-deterministic test of a similar nature:

      bb-11.6-MDEV-32887-vector 4b57276d6daa4d1d8051b366a544e5caed05efe8 non-debug

      #2  <signal handler called>
      #3  __memcpy_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:339
      #4  0x000055aa3e58f50e in Field::unpack (this=0x6190000e0dc8, to=0x6190000e259c "\200", from=0x0, from_end=0x61100008b0e4 '\276' <repeats 20 times>, param_data=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/field.cc:2183
      #5  0x000055aa3eb22054 in unpack_field (tabledef=tabledef@entry=0x7f2c88a312b0, f=0x6190000e0dc8, st=st@entry=0x7f2c88a2e490, field_idx=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/rpl_record.cc:254
      #6  0x000055aa3eb22ada in unpack_row (rgi=rgi@entry=0x7f2c88a30400, table=<optimized out>, colcnt=<optimized out>, row_data=<optimized out>, cols=cols@entry=0x61300004c480, current_row_end=current_row_end@entry=0x61300004c538, master_reclength=<optimized out>, row_end=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/rpl_record.cc:468
      #7  0x000055aa3eb12ba8 in Rows_log_event::unpack_current_row (rgi=0x7f2c88a30400, this=0x61300004c418) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/log_event.h:4927
      #8  Rows_log_event::write_row (this=this@entry=0x61300004c418, rgi=rgi@entry=0x7f2c88a30400, overwrite=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/log_event_server.cc:6758
      #9  0x000055aa3eb1489a in Write_rows_log_event::do_exec_row (this=0x61300004c418, rgi=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/log_event_server.cc:7089
      #10 0x000055aa3eaefc3e in Rows_log_event::do_apply_event (this=0x61300004c418, rgi=0x7f2c88a30400) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/log_event_server.cc:5176
      #11 0x000055aa3ead4ea9 in Log_event::apply_event (this=this@entry=0x61300004c418, rgi=rgi@entry=0x7f2c88a30400) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/log_event.cc:3946
      #12 0x000055aa3e00bf32 in online_alter_read_from_binlog (thd=thd@entry=0x62b0001ce218, rgi=rgi@entry=0x7f2c88a30400, log=log@entry=0x61b000031080, found_rows=found_rows@entry=0x7f2c88a2f0d0) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/sql_table.cc:12123
      #13 0x000055aa3e068f75 in copy_data_between_tables (thd=thd@entry=0x62b0001ce218, from=from@entry=0x6190000e2998, to=to@entry=0x6190000ece98, ignore=ignore@entry=false, order_num=order_num@entry=0, order=order@entry=0x0, copied=<optimized out>, deleted=<optimized out>, alter_info=<optimized out>, alter_ctx=<optimized out>, online=true, start_alter_id=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/sql_table.cc:12631
      #14 0x000055aa3e077f3b in mysql_alter_table (thd=thd@entry=0x62b0001ce218, new_db=new_db@entry=0x62b0001d2e20, new_name=new_name@entry=0x62b0001d3280, create_info=create_info@entry=0x7f2c88a38530, table_list=<optimized out>, table_list@entry=0x6290001f9488, recreate_info=<optimized out>, alter_info=<optimized out>, order_num=<optimized out>, order=<optimized out>, ignore=<optimized out>, if_exists=<optimized out>) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/sql_table.cc:11574
      #15 0x000055aa3e1eae59 in Sql_cmd_alter_table::execute (this=<optimized out>, thd=0x62b0001ce218) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/sql_alter.cc:701
      #16 0x000055aa3dd8dcc9 in mysql_execute_command (thd=thd@entry=0x62b0001ce218, 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-asan/sql/sql_parse.cc:5846
      #17 0x000055aa3dd9c092 in mysql_parse (thd=thd@entry=0x62b0001ce218, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7f2c88a3a840) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/sql_parse.cc:7873
      #18 0x000055aa3dda438f in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x62b0001ce218, packet=packet@entry=0x6290001ef219 "", packet_length=packet_length@entry=128, blocking=blocking@entry=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/sql_parse.cc:1892
      #19 0x000055aa3dda9599 in do_command (thd=0x62b0001ce218, blocking=blocking@entry=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/sql_parse.cc:1405
      #20 0x000055aa3e1d769f in do_handle_one_connection (connect=<optimized out>, connect@entry=0x608000003b38, put_in_cache=put_in_cache@entry=true) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/sql_connect.cc:1448
      #21 0x000055aa3e1d7fad in handle_one_connection (arg=arg@entry=0x608000003b38) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/sql/sql_connect.cc:1350
      #22 0x000055aa3edfcb68 in pfs_spawn_thread (arg=0x617000007b18) at /data/bld/preview-11.7-bb-11.6-MDEV-32887-vector-rel-asan/storage/perfschema/pfs.cc:2198
      #23 0x00007f2cb38a8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #24 0x00007f2cb392861c 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.