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

Assertion `fil_page_get_type(page_align(rec)) == 17855' failed in row_log_table_low

    XMLWordPrintable

Details

    Description

      Note: The problem may be closely related to MDEV-20476. But it's a different assertion failure, so I'm filing it separately.

      Note: It currently fails every time for me, but the test case is still non-deterministic, run with --repeat=N if it doesn't fail right away.

      Also run MTR with

      --mysqld=--innodb_page_size=8K --mysqld=--loose-innodb_immediate_scrub_data_uncompressed=ON 
      

      --source include/have_innodb.inc
      --source include/have_partition.inc
       
      CREATE TABLE t1 (
          a varchar(255) CHARACTER SET ucs2,
          b longtext CHARACTER SET ucs2,
          c varchar(8),
          d char(255) CHARACTER SET ucs2,
          e longtext CHARACTER SET utf8,
          f longtext CHARACTER SET ucs2,
          g longtext CHARACTER SET utf8,
          h varchar(255),
          i char(255) CHARACTER SET ucs2,
          j varchar(8),
          k varchar(255),
          l char(255) CHARACTER SET utf8,
          m varchar(255) CHARACTER SET ucs2,
          n varchar(255) CHARACTER SET utf8,
          o varchar(8),
          p varchar(255),
          q varchar(8),
          r varchar(255),
          s char(255) CHARACTER SET utf8,
          t varchar(255) CHARACTER SET utf8,
          pk int auto_increment,
          primary key (pk)
      ) ENGINE=InnoDB PARTITION BY key (pk) partitions 2;
       
      INSERT INTO t1 VALUES
      ('v', 'arrange', 'f', 'n', 'x', 'indicator', 'h', 'balance', 'flour', 'f', 'latter', 'l', 'regional', REPEAT('a',18), 'r', 'e', 't', 'l', 'terrible', 'a', NULL),
      ('pin', 'r', 'u', 'b', 'list', 'i', 'corporation', 'diverse', 'c', 'p', 'z,h,e,e,o', 'forest', 'mean', 's', 'h', 'o,i,r,c,o,n', 'e', 'message', 'd', 'k', NULL),
      ('f', 'emission', NULL, 'e', 'k', 'j', 'z', 'p', 'o', NULL, 'darkness', 'speak', 'invade', 'z', 'o', 'eventually', NULL, 'd,f,g', REPEAT('a',134), 'v', NULL),
      ('fact', 'breast', 'r', REPEAT('a',62), 'f', 'e', 'researcher', 'm,z,s,a,d', REPEAT('a',197), 'c', 'z', 'sprinkle', REPEAT('a',232), 'l', 'q', 'u', 'p', 'g', 'aid', REPEAT('a',233), NULL),
      (REPEAT('a',172), 'bat', NULL, REPEAT('a',207), 'toll', 'a', 'text', 'completely', REPEAT('a',180), NULL, 'cotton', REPEAT('a',124), 'h', 'y', 's', 'find', 'j', 'two', 'poll', REPEAT('a',226), NULL),
      (REPEAT('a',125), 'honey', 'i', 'r', 'average', 'b', 'brilliant', 'a,g,m,c,y,b,r,z,f,d', 'z', 'o', 'q', 'f', 'fine', 'fitness', 'w', 'ash', NULL, 'j,q,c,i,w,y,w', 'need', REPEAT('a',120), NULL),
      ('a', 'f', 'h', REPEAT('a',170), 'f', 'w', 'd', 'd', 'involved', 'a', 'h', REPEAT('a',31), REPEAT('a',53), 'expert', 'g', 'b,g', 'm', 'o', REPEAT('a',249), 't', NULL),
      ('g', 'f', NULL, 'bicycle', 'r', 'plus', 'o', 'b', 'd', 'o', 'n,u,z,u,r,a,x,k,b', REPEAT('a',194), 'help', 'a', 'w', 'belief', 'h', 'n', 'this', 'q', NULL),
      (REPEAT('a',183), 'folk', 'm', 'butt', 'survivor', 'equal', 'w', 'x', 'coordinate', 'x', 'w', 'protein', 'theme', 'p', 'p', 'o', NULL, 'cease', 'from', 'resist', NULL),
      ('fifth', 'u', NULL, 'x', 'w', 'although', 'k', 'private', 'k', 'y', 'advantage', REPEAT('a',186), REPEAT('a',208), 'identity', NULL, 'listen', 'x', 'w', REPEAT('a',30), 'swear', NULL),
      ('celebration', 'pen', 'd', REPEAT('a',45), 'most', 'beach', 'imply', 'm', 'k', 'y', 'situation', REPEAT('a',215), 'r', 'k', 'd', 'w,c,x,s,e', 'c', 'far', REPEAT('a',197), REPEAT('a',88), NULL),
      ('a', 'y', 'h', 'yeah', 'j', 'metaphor', 'a', 'l,q,u,f,z,e,p,l', REPEAT('a',107), 'g', 'g,a,i,t,y,f', 'beside', 'few', 'l', 'w', 'g,l,b,y,x,k', 'p', 'continent', 'invitation', 'school', NULL),
      (REPEAT('a',138), 'u', 'y', 'chill', 'p', 'x', 'owe', 'k', 'm', 'i', 'q,r', 'i', 'jet', 'w', 'o', 'q', 'h', 'what', 'cartoon', REPEAT('a',68), NULL),
      (REPEAT('a',90), 'v', NULL, 'democratic', 'loss', 'n', 'q', 'n,a,o,m', 'x', 'u', 'd', 'consumption', 'produce', REPEAT('a',150), NULL, 'fine', 'n', 'v,l,p,b,u', REPEAT('a',216), 't', NULL),
      ('unable', 'unfold', 'o', 'n', 'river', 'ultimate', 'v', 'y,h,r,u,a,e,d', 'n', 'd', 'punish', 'prescription', 'i', 'u', 'p', 'u,b,n,i,d,a,i,a,r,c', 'f', 'offensive', 'currently', 'tap', NULL),
      ('o', 'domestic', NULL, 'l', 'h', 's', 't', 's', 'p', 'w', 'u,i,f', 'romantic', 'd', 'v', 'h', 'edge', NULL, 'j,i', 'middle', REPEAT('a',154), NULL),
      ('success', 'k', NULL, 'w', 'p', 'd', 'x', 'kingdom', REPEAT('a',33), 'u', 'tip', 'w', 'create', 'discourse', 's', 'tag', 'e', 'snow', 'h', 'p', NULL),
      (REPEAT('a',199), 'a', 'a', REPEAT('a',63), 'f', 's', 'politics', 'forever', 'l', 'e', 'individual', 'mood', 'w', 'k', NULL, 'faculty', 'd', 'nature', 'delivery', 'distant', NULL),
      ('q', 'similarly', 'l', 'exception', 'b', 'k', 'inside', 'principle', 'g', 'i', 'm', REPEAT('a',71), 'spine', REPEAT('a',28), 'o', 'number', 'j', 'c', 'u', 'p', NULL),
      ('mortgage', 'j', NULL, REPEAT('a',116), 'j', 'and', 'p', 'j', REPEAT('a',18), 'z', 'uncover', 'worry', 'moment', REPEAT('a',145), 'j', 'w', 'l', 'k', REPEAT('a',136), REPEAT('a',185), NULL),
      ('tale', 'crisis', 'y', REPEAT('a',212), 'burn', 'w', 'k', 'w,o,y,w,o,u,i,g,c,x', 'c', 'm', 'j', 'z', 'aside', 'finish', 'd', 'p,b,i,o,j', NULL, 'm,k', 'fantastic', 'hence', NULL),
      ('g', 'j', 'g', 'q', 'restore', 'partnership', 'x', 'internet', 'sensation', 'a', 'a', 'z', 'vkpa', 'n', 'w', 'smooth', 'e', 'neat', 'uncertain', 'flying', NULL);
       
      --connect (con1,localhost,root,,test)
      --send
          ALTER TABLE t1 FORCE;
      --connection default
      SET SQL_MODE= '';
      SELECT * INTO OUTFILE 'load_t1' FROM t1;
      LOAD DATA INFILE 'load_t1' REPLACE INTO TABLE t1;
       
      # Cleanup
      --connection con1
      --reap
      --disconnect con1
      --connection default
      --let $datadir= `SELECT @@datadir`
      --remove_file $datadir/test/load_t1
      DROP TABLE t1;
      

      10.2 879c9ddc debug

      mysqld: /data/src/10.2/storage/innobase/row/row0log.cc:862: void row_log_table_low(const rec_t*, dict_index_t*, const ulint*, bool, const dtuple_t*): Assertion `fil_page_get_type(page_align(rec)) == 17855' failed.
      190911  2:08:18 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007fb95f14df12 in __GI___assert_fail (assertion=0x55cc5ff9c770 "fil_page_get_type(page_align(rec)) == 17855", file=0x55cc5ff9c110 "/data/src/10.2/storage/innobase/row/row0log.cc", line=862, function=0x55cc5ff9ec00 <row_log_table_low(unsigned char const*, dict_index_t*, unsigned long const*, bool, dtuple_t const*)::__PRETTY_FUNCTION__> "void row_log_table_low(const rec_t*, dict_index_t*, const ulint*, bool, const dtuple_t*)") at assert.c:101
      #8  0x000055cc5f95c593 in row_log_table_low (rec=0x7fb959d1a094 "", index=0x7fb9100362b8, offsets=0x7fb9100a12b8, insert=false, old_pk=0x0) at /data/src/10.2/storage/innobase/row/row0log.cc:862
      #9  0x000055cc5f95cb1d in row_log_table_update (rec=0x7fb959d1a094 "", index=0x7fb9100362b8, offsets=0x7fb9100a12b8, old_pk=0x0) at /data/src/10.2/storage/innobase/row/row0log.cc:955
      #10 0x000055cc5f9a51a1 in row_upd_clust_rec (flags=0, node=0x7fb91009eeb8, index=0x7fb9100362b8, offsets=0x7fb9100a12b8, offsets_heap=0x7fb959735d00, thr=0x7fb91009f550, mtr=0x7fb959736070) at /data/src/10.2/storage/innobase/row/row0upd.cc:2923
      #11 0x000055cc5f9a5d63 in row_upd_clust_step (node=0x7fb91009eeb8, thr=0x7fb91009f550) at /data/src/10.2/storage/innobase/row/row0upd.cc:3183
      #12 0x000055cc5f9a6159 in row_upd (node=0x7fb91009eeb8, thr=0x7fb91009f550) at /data/src/10.2/storage/innobase/row/row0upd.cc:3281
      #13 0x000055cc5f9a6630 in row_upd_step (thr=0x7fb91009f550) at /data/src/10.2/storage/innobase/row/row0upd.cc:3427
      #14 0x000055cc5f94e936 in row_update_for_mysql (prebuilt=0x7fb91005d048) at /data/src/10.2/storage/innobase/row/row0mysql.cc:1828
      #15 0x000055cc5f811a59 in ha_innobase::update_row (this=0x7fb910085768, old_row=0x7fb910059f28 "", new_row=0x7fb9100586d8 "") at /data/src/10.2/storage/innobase/handler/ha_innodb.cc:9016
      #16 0x000055cc5f60d6a9 in handler::ha_update_row (this=0x7fb910085768, old_data=0x7fb910059f28 "", new_data=0x7fb9100586d8 "") at /data/src/10.2/sql/handler.cc:6121
      #17 0x000055cc5fd1ee81 in ha_partition::update_row (this=0x7fb9101869d8, old_data=0x7fb910059f28 "", new_data=0x7fb9100586d8 "") at /data/src/10.2/sql/ha_partition.cc:4284
      #18 0x000055cc5f60d662 in handler::ha_update_row (this=0x7fb9101869d8, old_data=0x7fb910059f28 "", new_data=0x7fb9100586d8 "") at /data/src/10.2/sql/handler.cc:6121
      #19 0x000055cc5f35ca0e in write_record (thd=0x7fb910000b00, table=0x7fb910185970, info=0x7fb959737090) at /data/src/10.2/sql/sql_insert.cc:1886
      #20 0x000055cc5f7a48b3 in read_sep_field (thd=0x7fb910000b00, info=..., table_list=0x7fb9100125d0, fields_vars=..., set_fields=..., set_values=..., read_info=..., enclosed=..., skip_lines=0, ignore_check_option_errors=false) at /data/src/10.2/sql/sql_load.cc:1175
      #21 0x000055cc5f7a2f1e in mysql_load (thd=0x7fb910000b00, ex=0x7fb910012548, table_list=0x7fb9100125d0, fields_vars=..., set_fields=..., set_values=..., handle_duplicates=DUP_REPLACE, ignore=false, read_file_from_client=false) at /data/src/10.2/sql/sql_load.cc:682
      #22 0x000055cc5f382dc0 in mysql_execute_command (thd=0x7fb910000b00) at /data/src/10.2/sql/sql_parse.cc:4581
      #23 0x000055cc5f38cda2 in mysql_parse (thd=0x7fb910000b00, rawbuf=0x7fb910012468 "LOAD DATA INFILE 'load_t1' REPLACE INTO TABLE t1", length=48, parser_state=0x7fb959738200, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:7760
      #24 0x000055cc5f37b0ab in dispatch_command (command=COM_QUERY, thd=0x7fb910000b00, packet=0x7fb910096361 "LOAD DATA INFILE 'load_t1' REPLACE INTO TABLE t1", packet_length=48, is_com_multi=false, is_next_command=false) at /data/src/10.2/sql/sql_parse.cc:1832
      #25 0x000055cc5f3799ff in do_command (thd=0x7fb910000b00) at /data/src/10.2/sql/sql_parse.cc:1385
      #26 0x000055cc5f4ce9a3 in do_handle_one_connection (connect=0x55cc628cb780) at /data/src/10.2/sql/sql_connect.cc:1336
      #27 0x000055cc5f4ce70e in handle_one_connection (arg=0x55cc628cb780) at /data/src/10.2/sql/sql_connect.cc:1241
      #28 0x000055cc5fcff64c in pfs_spawn_thread (arg=0x55cc628eea30) at /data/src/10.2/storage/perfschema/pfs.cc:1862
      #29 0x00007fb960cc24a4 in start_thread (arg=0x7fb959739700) at pthread_create.c:456
      #30 0x00007fb95f20ad0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
      

      10.2 879c9ddc non-debug

      mysqltest: At line 63: query 'reap' failed: 1034: Index for table 't1' is corrupt; try to repair it
      

      Reproducible on 10.1 and 10.2.
      10.3 fails with MDEV-20476 instead.
      Not reproducible on 10.4.

      Attachments

        Activity

          People

            marko Marko Mäkelä
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            1 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.