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

Various assertion failures due to MDEV-15562 instant ALTER TABLE

Details

    Description

      10.4 b9a9055793ab8b9a50200e2f5560246

      mysqld: /10.4/src/storage/innobase/handler/handler0alter.cc:348: void dict_index_t::instant_add_field(const dict_index_t&): Assertion `fields[i].same(instant.fields[i])' failed.
      181114 17:22:54 [ERROR] mysqld got signal 6 ;
       
      stdlib/abort.c:91(__GI_abort)[0x7eff6adf602a]
      assert/assert.c:92(__assert_fail_base)[0x7eff6adecbd7]
      /lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7eff6adecc82]
      handler/handler0alter.cc:349(dict_index_t::instant_add_field(dict_index_t const&))[0x561842709dd7]
      handler/handler0alter.cc:491(dict_table_t::instant_column(dict_table_t const&, unsigned long const*))[0x56184270c46e]
      handler/handler0alter.cc:5251(innobase_instant_try(Alter_inplace_info const*, ha_innobase_inplace_ctx*, TABLE const*, TABLE const*, trx_t*))[0x5618426d9c30]
      handler/handler0alter.cc:9890(commit_try_norebuild(Alter_inplace_info*, ha_innobase_inplace_ctx*, TABLE*, TABLE const*, trx_t*, char const*))[0x561842716ebf]
      handler/handler0alter.cc:10519(ha_innobase::commit_inplace_alter_table(TABLE*, Alter_inplace_info*, bool))[0x5618426fb413]
      sql/handler.cc:4458(handler::ha_commit_inplace_alter_table(TABLE*, Alter_inplace_info*, bool))[0x561841e55b14]
      sql/sql_table.cc:7601(mysql_inplace_alter_table(THD*, TABLE_LIST*, TABLE*, TABLE*, Alter_inplace_info*, enum_alter_inplace_result, MDL_request*, Alter_table_ctx*))[0x56184196a731]
      sql/sql_table.cc:9692(mysql_alter_table(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, HA_CREATE_INFO*, TABLE_LIST*, Alter_info*, unsigned int, st_order*, bool))[0x561841976f18]
      sql/sql_alter.cc:497(Sql_cmd_alter_table::execute(THD*))[0x561841ab5916]
      sql/sql_parse.cc:6289(mysql_execute_command(THD*))[0x56184176f692]
      sql/sql_parse.cc:8091(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x561841779ea1]
      sql/sql_parse.cc:1853(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x561841754d9e]
      sql/sql_parse.cc:1396(do_command(THD*))[0x561841751f36]
      sql/sql_connect.cc:1402(do_handle_one_connection(CONNECT*))[0x561841aa6da7]
      sql/sql_connect.cc:1309(handle_one_connection)[0x561841aa6784]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7eff6ba316ba]
      x86_64/clone.S:111(clone)[0x7eff6aec641d]
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x62b000085288): ALTER TABLE `AA` ADD COLUMN ( icol1 TINYINT UNSIGNED ZEROFILL NOT NULL );
      

      mysqld: /10.4/src/storage/innobase/row/row0sel.cc:2905: void row_sel_field_store_in_mysql_format_func(byte*, const mysql_row_templ_t*, const dict_index_t*, ulint, const byte*, ulint): Assertion `(templ->is_virtual && !field) || (field && field->prefix_len ? field->prefix_len == len : templ->mysql_col_len == len)' failed.
      181114 17:24:58 [ERROR] mysqld got signal 6 ;
       
      linux/raise.c:54(__GI_raise)[0x7fde2d4f8428]
      stdlib/abort.c:91(__GI_abort)[0x7fde2d4fa02a]
      assert/assert.c:92(__assert_fail_base)[0x7fde2d4f0bd7]
      /lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7fde2d4f0c82]
      row/row0sel.cc:2909(row_sel_field_store_in_mysql_format_func(unsigned char*, mysql_row_templ_t const*, dict_index_t const*, unsigned long, unsigned char const*, unsigned long))[0x55e20889704a]
      row/row0sel.cc:3073(row_sel_store_mysql_field_func(unsigned char*, row_prebuilt_t*, unsigned char const*, dict_index_t const*, unsigned long const*, unsigned long, mysql_row_templ_t const*))[0x55e208898153]
      row/row0sel.cc:3200(row_sel_store_mysql_rec(unsigned char*, row_prebuilt_t*, unsigned char const*, dtuple_t const*, bool, dict_index_t const*, unsigned long const*))[0x55e208899044]
      row/row0sel.cc:5480(row_search_mvcc(unsigned char*, page_cur_mode_t, row_prebuilt_t*, unsigned long, unsigned long))[0x55e2088a3732]
      handler/ha_innodb.cc:9258(ha_innobase::index_read(unsigned char*, unsigned char const*, unsigned int, ha_rkey_function))[0x55e2085867b7]
      handler/ha_innodb.cc:9635(ha_innobase::index_first(unsigned char*))[0x55e20858925f]
      handler/ha_innodb.cc:9728(ha_innobase::rnd_next(unsigned char*))[0x55e20858983e]
      sql/handler.cc:2765(handler::ha_rnd_next(unsigned char*))[0x55e207d61fd0]
      sql/records.cc:481(rr_sequential(READ_RECORD*))[0x55e2080f8127]
      sql/records.h:73(READ_RECORD::read_record())[0x55e20750e252]
      sql/sql_select.cc:20295(join_init_read_record(st_join_table*))[0x55e207791fc9]
      sql/sql_select.cc:19359(sub_select(JOIN*, st_join_table*, bool))[0x55e20778b9cf]
      sql/sql_select.cc:18902(do_select(JOIN*, Procedure*))[0x55e20778a027]
      sql/sql_select.cc:4082(JOIN::exec_inner())[0x55e207728be5]
      sql/sql_select.cc:3877(JOIN::exec())[0x55e20772692a]
      sql/sql_select.cc:4283(mysql_select(THD*, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*))[0x55e207729cb5]
      sql/sql_select.cc:385(handle_select(THD*, LEX*, select_result*, unsigned long))[0x55e207704205]
      sql/sql_parse.cc:6554(execute_sqlcom_select(THD*, TABLE_LIST*))[0x55e20768a8fc]
      sql/sql_parse.cc:3773(mysql_execute_command(THD*))[0x55e207679056]
      sql/sql_parse.cc:8091(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55e207692ea1]
      sql/sql_parse.cc:1853(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55e20766dd9e]
      sql/sql_parse.cc:1396(do_command(THD*))[0x55e20766af36]
      sql/sql_connect.cc:1402(do_handle_one_connection(CONNECT*))[0x55e2079bfda7]
      sql/sql_connect.cc:1309(handle_one_connection)[0x55e2079bf784]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7fde2e1356ba]
      x86_64/clone.S:111(clone)[0x7fde2d5ca41d]
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x62b00007e288): select * from AA
      

      mysqld: /10.4/src/storage/innobase/row/row0merge.cc:766: ulint row_merge_buf_add(row_merge_buf_t*, dict_index_t*, const dict_table_t*, const dict_table_t*, fts_psort_t*, const dtuple_t*, const row_ext_t*, doc_id_t*, mem_heap_t*, dberr_t*, mem_heap_t**, TABLE*, trx_t*): Assertion `len <= col->len || ((col->mtype) == 5 || (col->mtype) == 14)' failed.
      181114 17:29:39 [ERROR] mysqld got signal 6 ;
       
      linux/raise.c:54(__GI_raise)[0x7f574c9f3428]
      stdlib/abort.c:91(__GI_abort)[0x7f574c9f502a]
      assert/assert.c:92(__assert_fail_base)[0x7f574c9ebbd7]
      /lib/x86_64-linux-gnu/libc.so.6(+0x2dc82)[0x7f574c9ebc82]
      row/row0merge.cc:769(row_merge_buf_add(row_merge_buf_t*, dict_index_t*, dict_table_t const*, dict_table_t const*, fts_psort_t*, dtuple_t const*, row_ext_t const*, unsigned long*, mem_block_info_t*, dberr_t*, mem_block_info_t**, TABLE*, trx_t*))[0x55cb6d0aeea8]
      row/row0merge.cc:2383(row_merge_read_clustered_index(trx_t*, TABLE*, dict_table_t const*, dict_table_t*, bool, dict_index_t**, dict_index_t*, fts_psort_t*, merge_file_t*, unsigned long const*, unsigned long, dtuple_t const*, dict_add_v_col_t const*, unsigned long const*, unsigned long, ib_sequence_t&, unsigned char*, bool, pfs_os_file_t*, ut_stage_alter_t*, double, unsigned char*, TABLE*, bool))[0x55cb6d0b8507]
      row/row0merge.cc:4766(row_merge_build_indexes(trx_t*, dict_table_t*, dict_table_t*, bool, dict_index_t**, unsigned long const*, unsigned long, TABLE*, dtuple_t const*, unsigned long const*, unsigned long, ib_sequence_t&, bool, ut_stage_alter_t*, dict_add_v_col_t const*, TABLE*, bool))[0x55cb6d0c4a1b]
      handler/handler0alter.cc:8041(ha_innobase::inplace_alter_table(TABLE*, Alter_inplace_info*))[0x55cb6cebdc6f]
      sql/handler.h:4184(handler::ha_inplace_alter_table(TABLE*, Alter_inplace_info*))[0x55cb6c14d4ee]
      sql/sql_table.cc:7555(mysql_inplace_alter_table(THD*, TABLE_LIST*, TABLE*, TABLE*, Alter_inplace_info*, enum_alter_inplace_result, MDL_request*, Alter_table_ctx*))[0x55cb6c137339]
      sql/sql_table.cc:9692(mysql_alter_table(THD*, st_mysql_const_lex_string const*, st_mysql_const_lex_string const*, HA_CREATE_INFO*, TABLE_LIST*, Alter_info*, unsigned int, st_order*, bool))[0x55cb6c143f18]
      sql/sql_table.cc:10604(mysql_recreate_table(THD*, TABLE_LIST*, bool))[0x55cb6c149fcd]
      sql/sql_admin.cc:58(admin_recreate_table(THD*, TABLE_LIST*))[0x55cb6c294f99]
      sql/sql_admin.cc:1027(mysql_admin_table(THD*, TABLE_LIST*, st_ha_check_opt*, char const*, thr_lock_type, bool, bool, unsigned int, int (*)(THD*, TABLE_LIST*, st_ha_check_opt*), int (handler::*)(THD*, st_ha_check_opt*), int (*)(THD*, TABLE_LIST*, st_ha_check_opt*)))[0x55cb6c29bf14]
      sql/sql_admin.cc:1375(Sql_cmd_optimize_table::execute(THD*))[0x55cb6c29ea20]
      sql/sql_parse.cc:6289(mysql_execute_command(THD*))[0x55cb6bf3c692]
      sql/sql_parse.cc:8091(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55cb6bf46ea1]
      sql/sql_parse.cc:1853(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55cb6bf21d9e]
      sql/sql_parse.cc:1396(do_command(THD*))[0x55cb6bf1ef36]
      sql/sql_connect.cc:1402(do_handle_one_connection(CONNECT*))[0x55cb6c273da7]
      sql/sql_connect.cc:1309(handle_one_connection)[0x55cb6c273784]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f574d6306ba]
      x86_64/clone.S:111(clone)[0x7f574cac541d]
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x62b00007e288): optimize table AA
      

      On the non-debug build:

      2018-11-14 17:56:47 17 [ERROR] InnoDB: Page old data size 64130 new data size 166, page old max ins size 0 new max ins size 16084
      2018-11-14 17:56:47 17 [ERROR] InnoDB: Submit a detailed bug report to https://jira.mariadb.org/
      

      to reproduce:

      perl ./runall-trials.pl --basedir=/git/10.4 --vardir=/1q --duration=350 --threads=6   --reporters=Backtrace,ErrorLog,Deadlock --validators=TransformerNoComparator --views  --mysqld=--log_output=FILE --mysqld=--max-statement-time=30 --engine=Aria   --grammar=conf/mariadb/instant_add.yy --mysqld=--performance-schema --gendata --vcols --transformers=ExecuteAsIntersect,ExecuteAsExcept,ExecuteAsCTE,ExecuteAsExecuteImmediate,ExecuteAsDeleteReturning,ExecuteAsInsertSelect,ExecuteAsUnion,ExecuteAsUpdateDelete,ExecuteAsView,ExecuteAsPreparedTwice --trials=10 --force
      

      Attachments

        1. `instant.n_core_fields == n_core_fields' .7z
          5.03 MB
        2. &fields[n_fields.7z
          3.77 MB
        3. dt.7z
          1.71 MB
        4. instant.n_nullable.7z
          2.03 MB

        Issue Links

          Activity

            This one is filed as MDEV-17826, with a test case. Might be related to, or be the same as the previous one.

            10.4 27f3329ff6

            mysqld: /data/src/10.4/storage/innobase/rem/rem0rec.cc:1608: void rec_convert_dtuple_to_rec_comp(rec_t*, const dict_index_t*, const dfield_t*, ulint, rec_comp_status_t, bool) [with bool mblob = true; rec_t = unsigned char; ulint = long unsigned int]: Assertion `dfield_is_ext(field)' failed.
            181125 17:07:13 [ERROR] mysqld got signal 6 ;
             
            #7  0x00007fa051265ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
            #8  0x000055841261d59c in rec_convert_dtuple_to_rec_comp<true> (rec=0x7f9ff805b9ff "\200", index=0x7f9ff8097888, field=0x7f9ff805ce60, n_fields=12, status=REC_STATUS_INSTANT, temp=false) at /data/src/10.4/storage/innobase/rem/rem0rec.cc:1608
            #9  0x0000558412616e42 in rec_convert_dtuple_to_rec_new (buf=0x7f9ff805b9ff "\200", index=0x7f9ff8097888, dtuple=0x7f9ff805cdd0) at /data/src/10.4/storage/innobase/rem/rem0rec.cc:1722
            #10 0x00005584126170a5 in rec_convert_dtuple_to_rec (buf=0x7f9ff805b9f8 "", index=0x7f9ff8097888, dtuple=0x7f9ff805cdd0, n_ext=0) at /data/src/10.4/storage/innobase/rem/rem0rec.cc:1766
            #11 0x000055841272c610 in page_cur_tuple_insert (cursor=0x7fa04655f358, tuple=0x7f9ff805cdd0, index=0x7f9ff8097888, offsets=0x7fa04655f2e8, heap=0x7fa04655f2e0, n_ext=0, mtr=0x7fa04655f770) at /data/src/10.4/storage/innobase/include/page0cur.ic:278
            #12 0x0000558412736416 in btr_page_split_and_insert (flags=2, cursor=0x7fa04655f350, offsets=0x7fa04655f2e8, heap=0x7fa04655f2e0, tuple=0x7f9ff805cdd0, n_ext=0, mtr=0x7fa04655f770) at /data/src/10.4/storage/innobase/btr/btr0btr.cc:3284
            #13 0x00005584127597b7 in btr_cur_pessimistic_insert (flags=2, cursor=0x7fa04655f350, offsets=0x7fa04655f2e8, heap=0x7fa04655f2e0, entry=0x7f9ff805cdd0, rec=0x7fa04655f2f0, big_rec=0x7fa04655f2d8, n_ext=0, thr=0x7f9ff805d010, mtr=0x7fa04655f770) at /data/src/10.4/storage/innobase/btr/btr0cur.cc:3695
            #14 0x0000558412640f95 in row_ins_clust_index_entry_low (flags=2, mode=33, index=0x7f9ff8097888, n_uniq=1, entry=0x7f9ff805cdd0, n_ext=0, thr=0x7f9ff805d010, dup_chk_only=false) at /data/src/10.4/storage/innobase/row/row0ins.cc:2767
            #15 0x00005584125388be in innobase_instant_try (ha_alter_info=0x7fa046561bb0, ctx=0x7f9ff8017030, altered_table=0x7f9ff804f4e0, table=0x7f9ff812d030, trx=0x7fa04c049218) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:5647
            #16 0x0000558412552fcb in commit_try_norebuild (ha_alter_info=0x7fa046561bb0, ctx=0x7f9ff8017030, altered_table=0x7f9ff804f4e0, old_table=0x7f9ff812d030, trx=0x7fa04c049218, table_name=0x7f9ff81304cd "t1") at /data/src/10.4/storage/innobase/handler/handler0alter.cc:10013
            #17 0x0000558412545d02 in ha_innobase::commit_inplace_alter_table (this=0x7f9ff80944e8, altered_table=0x7f9ff804f4e0, ha_alter_info=0x7fa046561bb0, commit=true) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:10642
            #18 0x00005584121e0a78 in handler::ha_commit_inplace_alter_table (this=0x7f9ff80944e8, altered_table=0x7f9ff804f4e0, ha_alter_info=0x7fa046561bb0, commit=true) at /data/src/10.4/sql/handler.cc:4457
            #19 0x0000558411faa918 in mysql_inplace_alter_table (thd=0x7f9ff8000b00, table_list=0x7f9ff8014e80, table=0x7f9ff812d030, altered_table=0x7f9ff804f4e0, ha_alter_info=0x7fa046561bb0, inplace_supported=HA_ALTER_INPLACE_INSTANT, target_mdl_request=0x7fa046561ce0, alter_ctx=0x7fa0465628d0) at /data/src/10.4/sql/sql_table.cc:7599
            #20 0x0000558411fb0733 in mysql_alter_table (thd=0x7f9ff8000b00, new_db=0x7f9ff80051b8, new_name=0x7f9ff8005588, create_info=0x7fa0465634c0, table_list=0x7f9ff8014e80, alter_info=0x7fa046563400, order_num=0, order=0x0, ignore=false) at /data/src/10.4/sql/sql_table.cc:9692
            #21 0x00005584120398bd in Sql_cmd_alter_table::execute (this=0x7f9ff80154e8, thd=0x7f9ff8000b00) at /data/src/10.4/sql/sql_alter.cc:497
            #22 0x0000558411ed8ab4 in mysql_execute_command (thd=0x7f9ff8000b00) at /data/src/10.4/sql/sql_parse.cc:6289
            #23 0x0000558411edd9d8 in mysql_parse (thd=0x7f9ff8000b00, rawbuf=0x7f9ff8014d98 "ALTER TABLE t1 DROP COLUMN f1", length=29, parser_state=0x7fa046564600, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:8091
            #24 0x0000558411ecacd7 in dispatch_command (command=COM_QUERY, thd=0x7f9ff8000b00, packet=0x7f9ff800b401 "ALTER TABLE t1 DROP COLUMN f1", packet_length=29, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1851
            #25 0x0000558411ec96fb in do_command (thd=0x7f9ff8000b00) at /data/src/10.4/sql/sql_parse.cc:1396
            #26 0x0000558412033b3c in do_handle_one_connection (connect=0x55841585f3e0) at /data/src/10.4/sql/sql_connect.cc:1402
            #27 0x00005584120338c0 in handle_one_connection (arg=0x55841585f3e0) at /data/src/10.4/sql/sql_connect.cc:1308
            #28 0x00005584124e10a1 in pfs_spawn_thread (arg=0x5584158e46b0) at /data/src/10.4/storage/perfschema/pfs.cc:1862
            #29 0x00007fa052d21494 in start_thread (arg=0x7fa046565700) at pthread_create.c:333
            #30 0x00007fa05132293f in clone () from /lib/x86_64-linux-gnu/libc.so.6
            

            elenst Elena Stepanova added a comment - This one is filed as MDEV-17826 , with a test case. Might be related to, or be the same as the previous one. 10.4 27f3329ff6 mysqld: /data/src/10.4/storage/innobase/rem/rem0rec.cc:1608: void rec_convert_dtuple_to_rec_comp(rec_t*, const dict_index_t*, const dfield_t*, ulint, rec_comp_status_t, bool) [with bool mblob = true; rec_t = unsigned char; ulint = long unsigned int]: Assertion `dfield_is_ext(field)' failed. 181125 17:07:13 [ERROR] mysqld got signal 6 ; #7 0x00007fa051265ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6 #8 0x000055841261d59c in rec_convert_dtuple_to_rec_comp<true> (rec=0x7f9ff805b9ff "\200", index=0x7f9ff8097888, field=0x7f9ff805ce60, n_fields=12, status=REC_STATUS_INSTANT, temp=false) at /data/src/10.4/storage/innobase/rem/rem0rec.cc:1608 #9 0x0000558412616e42 in rec_convert_dtuple_to_rec_new (buf=0x7f9ff805b9ff "\200", index=0x7f9ff8097888, dtuple=0x7f9ff805cdd0) at /data/src/10.4/storage/innobase/rem/rem0rec.cc:1722 #10 0x00005584126170a5 in rec_convert_dtuple_to_rec (buf=0x7f9ff805b9f8 "", index=0x7f9ff8097888, dtuple=0x7f9ff805cdd0, n_ext=0) at /data/src/10.4/storage/innobase/rem/rem0rec.cc:1766 #11 0x000055841272c610 in page_cur_tuple_insert (cursor=0x7fa04655f358, tuple=0x7f9ff805cdd0, index=0x7f9ff8097888, offsets=0x7fa04655f2e8, heap=0x7fa04655f2e0, n_ext=0, mtr=0x7fa04655f770) at /data/src/10.4/storage/innobase/include/page0cur.ic:278 #12 0x0000558412736416 in btr_page_split_and_insert (flags=2, cursor=0x7fa04655f350, offsets=0x7fa04655f2e8, heap=0x7fa04655f2e0, tuple=0x7f9ff805cdd0, n_ext=0, mtr=0x7fa04655f770) at /data/src/10.4/storage/innobase/btr/btr0btr.cc:3284 #13 0x00005584127597b7 in btr_cur_pessimistic_insert (flags=2, cursor=0x7fa04655f350, offsets=0x7fa04655f2e8, heap=0x7fa04655f2e0, entry=0x7f9ff805cdd0, rec=0x7fa04655f2f0, big_rec=0x7fa04655f2d8, n_ext=0, thr=0x7f9ff805d010, mtr=0x7fa04655f770) at /data/src/10.4/storage/innobase/btr/btr0cur.cc:3695 #14 0x0000558412640f95 in row_ins_clust_index_entry_low (flags=2, mode=33, index=0x7f9ff8097888, n_uniq=1, entry=0x7f9ff805cdd0, n_ext=0, thr=0x7f9ff805d010, dup_chk_only=false) at /data/src/10.4/storage/innobase/row/row0ins.cc:2767 #15 0x00005584125388be in innobase_instant_try (ha_alter_info=0x7fa046561bb0, ctx=0x7f9ff8017030, altered_table=0x7f9ff804f4e0, table=0x7f9ff812d030, trx=0x7fa04c049218) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:5647 #16 0x0000558412552fcb in commit_try_norebuild (ha_alter_info=0x7fa046561bb0, ctx=0x7f9ff8017030, altered_table=0x7f9ff804f4e0, old_table=0x7f9ff812d030, trx=0x7fa04c049218, table_name=0x7f9ff81304cd "t1") at /data/src/10.4/storage/innobase/handler/handler0alter.cc:10013 #17 0x0000558412545d02 in ha_innobase::commit_inplace_alter_table (this=0x7f9ff80944e8, altered_table=0x7f9ff804f4e0, ha_alter_info=0x7fa046561bb0, commit=true) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:10642 #18 0x00005584121e0a78 in handler::ha_commit_inplace_alter_table (this=0x7f9ff80944e8, altered_table=0x7f9ff804f4e0, ha_alter_info=0x7fa046561bb0, commit=true) at /data/src/10.4/sql/handler.cc:4457 #19 0x0000558411faa918 in mysql_inplace_alter_table (thd=0x7f9ff8000b00, table_list=0x7f9ff8014e80, table=0x7f9ff812d030, altered_table=0x7f9ff804f4e0, ha_alter_info=0x7fa046561bb0, inplace_supported=HA_ALTER_INPLACE_INSTANT, target_mdl_request=0x7fa046561ce0, alter_ctx=0x7fa0465628d0) at /data/src/10.4/sql/sql_table.cc:7599 #20 0x0000558411fb0733 in mysql_alter_table (thd=0x7f9ff8000b00, new_db=0x7f9ff80051b8, new_name=0x7f9ff8005588, create_info=0x7fa0465634c0, table_list=0x7f9ff8014e80, alter_info=0x7fa046563400, order_num=0, order=0x0, ignore=false) at /data/src/10.4/sql/sql_table.cc:9692 #21 0x00005584120398bd in Sql_cmd_alter_table::execute (this=0x7f9ff80154e8, thd=0x7f9ff8000b00) at /data/src/10.4/sql/sql_alter.cc:497 #22 0x0000558411ed8ab4 in mysql_execute_command (thd=0x7f9ff8000b00) at /data/src/10.4/sql/sql_parse.cc:6289 #23 0x0000558411edd9d8 in mysql_parse (thd=0x7f9ff8000b00, rawbuf=0x7f9ff8014d98 "ALTER TABLE t1 DROP COLUMN f1", length=29, parser_state=0x7fa046564600, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:8091 #24 0x0000558411ecacd7 in dispatch_command (command=COM_QUERY, thd=0x7f9ff8000b00, packet=0x7f9ff800b401 "ALTER TABLE t1 DROP COLUMN f1", packet_length=29, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1851 #25 0x0000558411ec96fb in do_command (thd=0x7f9ff8000b00) at /data/src/10.4/sql/sql_parse.cc:1396 #26 0x0000558412033b3c in do_handle_one_connection (connect=0x55841585f3e0) at /data/src/10.4/sql/sql_connect.cc:1402 #27 0x00005584120338c0 in handle_one_connection (arg=0x55841585f3e0) at /data/src/10.4/sql/sql_connect.cc:1308 #28 0x00005584124e10a1 in pfs_spawn_thread (arg=0x5584158e46b0) at /data/src/10.4/storage/perfschema/pfs.cc:1862 #29 0x00007fa052d21494 in start_thread (arg=0x7fa046565700) at pthread_create.c:333 #30 0x00007fa05132293f in clone () from /lib/x86_64-linux-gnu/libc.so.6
            mleich Matthias Leich added a comment - - edited

            I have tried all MTR based tests (code shown above) against a
            10.4 301bd62b2536f85a8ce418dcd5e705796d8c5763 2019-01-10 compiled with debug
            and none of them failed.
            Result of 2h RQG testing (~570 regular finished runs) with table_stress.yy and threads = 12.
            13 asserts hit

            List of unique asserts
            mysqld: storage/innobase/rem/rem0rec.cc:1200: ulint rec_get_converted_size_comp_prefix_low(const dict_index_t*, const dfield_t*, ulint, ulint*, rec_comp_status_t, bool) [with bool mblob = false; ulint = long unsigned int]: Assertion `len <= field->col->len || ((field->col->mtype) == 5 || (field->col->mtype) == 14) || (field->col->len == 0 && field->col->mtype == 1)' failed.
            mysqld: storage/innobase/rem/rem0rec.cc:1229: ulint rec_get_converted_size_comp_prefix_low(const dict_index_t*, const dfield_t*, ulint, ulint*, rec_comp_status_t, bool) [with bool mblob = false; ulint = long unsigned int]: Assertion `field->col->is_dropped() || !field->col->mbmaxlen || len >= field->col->mbminlen * fixed_len / field->col->mbmaxlen' failed.
            mysqld: storage/innobase/row/row0log.cc:680: void row_log_table_delete(const rec_t*, dict_index_t*, const ulint*, const byte*): Assertion `new_index->n_uniq == index->n_uniq' failed.
            mysqld: storage/innobase/row/row0log.cc:2111: dberr_t row_log_table_apply_update(que_thr_t*, ulint, const mrec_t*, const ulint*, mem_heap_t*, mem_heap_t*, row_merge_dup_t*, const dtuple_t*): Assertion `log->blobs' failed.
            mysqld: storage/innobase/row/row0log.cc:2430: const mrec_t* row_log_table_apply_op(que_thr_t*, ulint, row_merge_dup_t*, dberr_t*, mem_heap_t*, mem_heap_t*, const mrec_t*, const mrec_t*, ulint*): Assertion `0' failed.
            mysqld: storage/innobase/row/row0log.cc:2511: const mrec_t* row_log_table_apply_op(que_thr_t*, ulint, row_merge_dup_t*, dberr_t*, mem_heap_t*, mem_heap_t*, const mrec_t*, const mrec_t*, ulint*): Assertion `new_index->n_uniq == dup->index->n_uniq' failed.
             
            RQG tests using conf/mariadb/instant_add.yy (often used in the asserts reported above)
            were stopped after 1h because all passed.
            

            mleich Matthias Leich added a comment - - edited I have tried all MTR based tests (code shown above) against a 10.4 301bd62b2536f85a8ce418dcd5e705796d8c5763 2019-01-10 compiled with debug and none of them failed. Result of 2h RQG testing (~570 regular finished runs) with table_stress.yy and threads = 12. 13 asserts hit List of unique asserts mysqld: storage/innobase/rem/rem0rec.cc:1200: ulint rec_get_converted_size_comp_prefix_low(const dict_index_t*, const dfield_t*, ulint, ulint*, rec_comp_status_t, bool) [with bool mblob = false; ulint = long unsigned int]: Assertion `len <= field->col->len || ((field->col->mtype) == 5 || (field->col->mtype) == 14) || (field->col->len == 0 && field->col->mtype == 1)' failed. mysqld: storage/innobase/rem/rem0rec.cc:1229: ulint rec_get_converted_size_comp_prefix_low(const dict_index_t*, const dfield_t*, ulint, ulint*, rec_comp_status_t, bool) [with bool mblob = false; ulint = long unsigned int]: Assertion `field->col->is_dropped() || !field->col->mbmaxlen || len >= field->col->mbminlen * fixed_len / field->col->mbmaxlen' failed. mysqld: storage/innobase/row/row0log.cc:680: void row_log_table_delete(const rec_t*, dict_index_t*, const ulint*, const byte*): Assertion `new_index->n_uniq == index->n_uniq' failed. mysqld: storage/innobase/row/row0log.cc:2111: dberr_t row_log_table_apply_update(que_thr_t*, ulint, const mrec_t*, const ulint*, mem_heap_t*, mem_heap_t*, row_merge_dup_t*, const dtuple_t*): Assertion `log->blobs' failed. mysqld: storage/innobase/row/row0log.cc:2430: const mrec_t* row_log_table_apply_op(que_thr_t*, ulint, row_merge_dup_t*, dberr_t*, mem_heap_t*, mem_heap_t*, const mrec_t*, const mrec_t*, ulint*): Assertion `0' failed. mysqld: storage/innobase/row/row0log.cc:2511: const mrec_t* row_log_table_apply_op(que_thr_t*, ulint, row_merge_dup_t*, dberr_t*, mem_heap_t*, mem_heap_t*, const mrec_t*, const mrec_t*, ulint*): Assertion `new_index->n_uniq == dup->index->n_uniq' failed.   RQG tests using conf/mariadb/instant_add.yy (often used in the asserts reported above) were stopped after 1h because all passed.

            new_index->n_uniq == index->n_uniq is apparently MDEV-17376
            The rest should probably be filed as separate bugs, and this one can be closed then.

            elenst Elena Stepanova added a comment - new_index->n_uniq == index->n_uniq is apparently MDEV-17376 The rest should probably be filed as separate bugs, and this one can be closed then.
            mleich Matthias Leich added a comment - - edited
            mleich Matthias Leich added a comment - - edited None of the asserts hit by my RQG runs on actual 10.4 were mentioned above. https://jira.mariadb.org/browse/MDEV-18165 https://jira.mariadb.org/browse/MDEV-17376 https://jira.mariadb.org/browse/MDEV-17644

            Now that the code is more stable (after various fixes), let us close this for now and file new bugs for new failures.

            marko Marko Mäkelä added a comment - Now that the code is more stable (after various fixes), let us close this for now and file new bugs for new failures.

            People

              marko Marko Mäkelä
              alice Alice Sherepa
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.