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

Assertion `len == 20U' failed in rec_convert_dtuple_to_rec_comp upon DROP COLUMN

    XMLWordPrintable

    Details

      Description

      Note: Run with --repeat=N if it doesn't fail right away. It usually fails for me within first 1-2 attempts, but it can probably vary on different machines and builds.

      --source include/have_innodb.inc
       
      CREATE TABLE t1 (
       pk INT,
       f1 INT,
       f2 CHAR(255),
       f3 BIGINT,
       f4 INT,
       f5 CHAR(255),
       f6 CHAR(255),
       f7 CHAR(255) NOT NULL,
       f8 INT,
       f9 CHAR(10),
       PRIMARY KEY (pk)
      ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
       
      INSERT INTO t1 VALUES  
        (1, 1, 'a', 1, 1, 'a', 'a', 'a', 1, 'a'),
        (2, 2, 'b', 2, 2, 'b', 'b', 'b', 2, 'b'),
        (3, 3, 'c', 3, 3, 'c', 'c', 'c', 3, 'c'),
        (4, 4, 'd', 4, 4, 'd', 'd', 'd', 4, 'd'),
        (5, 5, 'e', 5, 5, 'e', 'e', 'e', 5, 'e'),
        (6, 6, 'f', 6, 6, 'f', 'f', 'f', 6, 'f'),
        (7, 7, 'g', 7, 7, 'g', 'g', 'g', 7, 'g'),
        (8, 8, 'h', 8, 8, 'h', 'h', 'h', 8, 'h'),
        (9, 9, 'i', 9, 9, 'i', 'i', 'i', 9, 'i'),
        (10, 0, 'j', 0, 0, 'j', 'j', 'j', 0, 'j'),
        (11, 1, 'k', 1, 1, 'k', 'k', 'k', 1, 'k'),
        (12, 2, 'l', 2, 2, 'l', 'l', 'l', 2, 'l'),
        (13, 3, 'm', 3, 3, 'm', 'm', 'm', 3, 'm'),
        (14, 4, 'n', 4, 4, 'n', 'n', 'n', 4, 'n'),
        (15, 5, 'o', 5, 5, 'o', 'o', 'o', 5, 'o');
       
      ALTER TABLE t1 ROW_FORMAT=COMPACT;
      DELETE FROM t1 LIMIT 1;
       
      REPLACE INTO t1 VALUES  
        (1, 1, 'a', 1, 1, 'a', 'a', 'a', 1, 'a'),
        (2, 2, 'b', 2, 2, 'b', 'b', 'b', 2, 'b'),
        (3, 3, 'c', 3, 3, 'c', 'c', 'c', 3, 'c'),
        (4, 4, 'd', 4, 4, 'd', 'd', 'd', 4, 'd'),
        (5, 5, 'e', 5, 5, 'e', 'e', 'e', 5, 'e'),
        (6, 6, 'f', 6, 6, 'f', 'f', 'f', 6, 'f'),
        (7, 7, 'g', 7, 7, 'g', 'g', 'g', 7, 'g'),
        (8, 8, 'h', 8, 8, 'h', 'h', 'h', 8, 'h'),
        (9, 9, 'i', 9, 9, 'i', 'i', 'i', 9, 'i'),
        (10, 0, 'j', 0, 0, 'j', 'j', 'j', 0, 'j'),
        (11, 1, 'k', 1, 1, 'k', 'k', 'k', 1, 'k'),
        (12, 2, 'l', 2, 2, 'l', 'l', 'l', 2, 'l'),
        (13, 3, 'm', 3, 3, 'm', 'm', 'm', 3, 'm'),
        (14, 4, 'n', 4, 4, 'n', 'n', 'n', 4, 'n'),
        (15, 5, 'o', 5, 5, 'o', 'o', 'o', 5, 'o');
       
      ALTER TABLE t1 DROP COLUMN f1;
       
      # Cleanup
      DROP TABLE t1;
      

      10.4 27f3329ff6

      mysqld: /data/src/10.4/storage/innobase/rem/rem0rec.cc:1607: 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 `len == 20U' failed.
      181125 16:44:43 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007fa526be5ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
      #8  0x000055f458e11551 in rec_convert_dtuple_to_rec_comp<true> (rec=0x7fa4d81deb7f "\200", index=0x7fa4d81db328, field=0x7fa4d81e0048, n_fields=13, status=REC_STATUS_INSTANT, temp=false) at /data/src/10.4/storage/innobase/rem/rem0rec.cc:1607
      #9  0x000055f458e0ae42 in rec_convert_dtuple_to_rec_new (buf=0x7fa4d81deb7f "\200", index=0x7fa4d81db328, dtuple=0x7fa4d81dffb8) at /data/src/10.4/storage/innobase/rem/rem0rec.cc:1722
      #10 0x000055f458e0b0a5 in rec_convert_dtuple_to_rec (buf=0x7fa4d81deb78 "", index=0x7fa4d81db328, dtuple=0x7fa4d81dffb8, n_ext=0) at /data/src/10.4/storage/innobase/rem/rem0rec.cc:1766
      #11 0x000055f458f20610 in page_cur_tuple_insert (cursor=0x7fa520126358, tuple=0x7fa4d81dffb8, index=0x7fa4d81db328, offsets=0x7fa5201262e8, heap=0x7fa5201262e0, n_ext=0, mtr=0x7fa520126770) at /data/src/10.4/storage/innobase/include/page0cur.ic:278
      #12 0x000055f458f2a416 in btr_page_split_and_insert (flags=2, cursor=0x7fa520126350, offsets=0x7fa5201262e8, heap=0x7fa5201262e0, tuple=0x7fa4d81dffb8, n_ext=0, mtr=0x7fa520126770) at /data/src/10.4/storage/innobase/btr/btr0btr.cc:3284
      #13 0x000055f458f4d7b7 in btr_cur_pessimistic_insert (flags=2, cursor=0x7fa520126350, offsets=0x7fa5201262e8, heap=0x7fa5201262e0, entry=0x7fa4d81dffb8, rec=0x7fa5201262f0, big_rec=0x7fa5201262d8, n_ext=0, thr=0x7fa4d81e0210, mtr=0x7fa520126770) at /data/src/10.4/storage/innobase/btr/btr0cur.cc:3695
      #14 0x000055f458e34f95 in row_ins_clust_index_entry_low (flags=2, mode=33, index=0x7fa4d81db328, n_uniq=1, entry=0x7fa4d81dffb8, n_ext=0, thr=0x7fa4d81e0210, dup_chk_only=false) at /data/src/10.4/storage/innobase/row/row0ins.cc:2767
      #15 0x000055f458d2c8be in innobase_instant_try (ha_alter_info=0x7fa520128bb0, ctx=0x7fa4d8017228, altered_table=0x7fa4d807efb0, table=0x7fa4d81d5a50, trx=0x7fa520a23218) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:5647
      #16 0x000055f458d46fcb in commit_try_norebuild (ha_alter_info=0x7fa520128bb0, ctx=0x7fa4d8017228, altered_table=0x7fa4d807efb0, old_table=0x7fa4d81d5a50, trx=0x7fa520a23218, table_name=0x7fa4d81bf89d "t1") at /data/src/10.4/storage/innobase/handler/handler0alter.cc:10013
      #17 0x000055f458d39d02 in ha_innobase::commit_inplace_alter_table (this=0x7fa4d80490e8, altered_table=0x7fa4d807efb0, ha_alter_info=0x7fa520128bb0, commit=true) at /data/src/10.4/storage/innobase/handler/handler0alter.cc:10642
      #18 0x000055f4589d4a78 in handler::ha_commit_inplace_alter_table (this=0x7fa4d80490e8, altered_table=0x7fa4d807efb0, ha_alter_info=0x7fa520128bb0, commit=true) at /data/src/10.4/sql/handler.cc:4457
      #19 0x000055f45879e918 in mysql_inplace_alter_table (thd=0x7fa4d8000b00, table_list=0x7fa4d8014e80, table=0x7fa4d81d5a50, altered_table=0x7fa4d807efb0, ha_alter_info=0x7fa520128bb0, inplace_supported=HA_ALTER_INPLACE_INSTANT, target_mdl_request=0x7fa520128ce0, alter_ctx=0x7fa5201298d0) at /data/src/10.4/sql/sql_table.cc:7599
      #20 0x000055f4587a4733 in mysql_alter_table (thd=0x7fa4d8000b00, new_db=0x7fa4d80051b8, new_name=0x7fa4d8005588, create_info=0x7fa52012a4c0, table_list=0x7fa4d8014e80, alter_info=0x7fa52012a400, order_num=0, order=0x0, ignore=false) at /data/src/10.4/sql/sql_table.cc:9692
      #21 0x000055f45882d8bd in Sql_cmd_alter_table::execute (this=0x7fa4d80154e8, thd=0x7fa4d8000b00) at /data/src/10.4/sql/sql_alter.cc:497
      #22 0x000055f4586ccab4 in mysql_execute_command (thd=0x7fa4d8000b00) at /data/src/10.4/sql/sql_parse.cc:6289
      #23 0x000055f4586d19d8 in mysql_parse (thd=0x7fa4d8000b00, rawbuf=0x7fa4d8014d98 "ALTER TABLE t1 DROP COLUMN f1", length=29, parser_state=0x7fa52012b600, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:8091
      #24 0x000055f4586becd7 in dispatch_command (command=COM_QUERY, thd=0x7fa4d8000b00, packet=0x7fa4d8093db1 "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 0x000055f4586bd6fb in do_command (thd=0x7fa4d8000b00) at /data/src/10.4/sql/sql_parse.cc:1396
      #26 0x000055f458827b3c in do_handle_one_connection (connect=0x55f45cae1660) at /data/src/10.4/sql/sql_connect.cc:1402
      #27 0x000055f4588278c0 in handle_one_connection (arg=0x55f45cae1660) at /data/src/10.4/sql/sql_connect.cc:1308
      #28 0x000055f458cd50a1 in pfs_spawn_thread (arg=0x55f45cb66930) at /data/src/10.4/storage/perfschema/pfs.cc:1862
      #29 0x00007fa5286a1494 in start_thread (arg=0x7fa52012c700) at pthread_create.c:333
      #30 0x00007fa526ca293f in clone () from /lib/x86_64-linux-gnu/libc.so.6
      

      Not reproducible on 10.3.
      No obvious effect on a non-debug build.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: