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

InnoDB: Flagged corruption, Assertion `0' failed in Row_sel_get_clust_rec_for_mysql::operator

    XMLWordPrintable

    Details

      Description

      It is currently reproducible on every attempt for me, but technically the test case is non-deterministic, try to run with --repeat if it doesn't fail right away.

      --source include/have_innodb.inc
       
      CREATE TABLE t1 (a VARCHAR(10), b INT) ENGINE=InnoDB;
      INSERT INTO t1 VALUES ('foo',NULL),('a',NULL),('bar',NULL);
       
      CREATE TABLE t2 (f TEXT UNIQUE) ENGINE=InnoDB;
      INSERT INTO t2 VALUES ('baz'), ('qux');
      UPDATE IGNORE t1 JOIN t2 SET t2.f = t1.a;
      UPDATE IGNORE t1 JOIN t2 SET t2.f = t1.a;
      DELETE FROM t2;
       
      --connect (con1,localhost,root,,test)
      --send
        INSERT INTO t2 () VALUES ();
       
      --connection default
      CHECK TABLE t2;
       
      # Cleanup
      --connection con1
      --reap
      --disconnect con1
      --connection default
      DROP TABLE t1, t2;
      

      10.4 non-debug 956f21c3

      2020-07-19 14:23:31 9 [ERROR] InnoDB: Flagged corruption of `f` in table `test`.`t2` in CHECK TABLE; Wrong count
      

      10.4 debug 956f21c3

      2020-07-19 14:25:08 9 [ERROR] InnoDB: Clustered record for sec rec not found index `f` of table `test`.`t2`
      InnoDB: sec index record PHYSICAL RECORD: n_fields 2; compact format; info bits 0
       0: len 8; hex 010e010e19505998; asc      PY ;;
       1: len 6; hex 000000000203; asc       ;;
       
      InnoDB: clust index record PHYSICAL RECORD: n_fields 1; compact format; info bits 0
       0: len 8; hex 696e66696d756d00; asc infimum ;;
       
      TRANSACTION 421930385908032, ACTIVE 0 sec starting index read
      mysql tables in use 1, locked 1
      0 lock struct(s), heap size 1152, 0 row lock(s)
      MySQL thread id 9, OS thread handle 140455398090496, query id 30 localhost root Executing
      CHECK TABLE t2
       
      InnoDB: Submit a detailed bug report to https://jira.mariadb.org/
      mysqld: /data/src/10.4/storage/innobase/row/row0sel.cc:3357: dberr_t Row_sel_get_clust_rec_for_mysql::operator()(row_prebuilt_t*, dict_index_t*, const rec_t*, que_thr_t*, const rec_t**, rec_offs**, mem_heap_t**, dtuple_t**, mtr_t*): Assertion `0' failed.
       
      #7  0x00007fbe5ce1af12 in __GI___assert_fail (assertion=0x55bca34ad41b "0", file=0x55bca34ad0d0 "/data/src/10.4/storage/innobase/row/row0sel.cc", line=3357, function=0x55bca34b0d60 <Row_sel_get_clust_rec_for_mysql::operator()(row_prebuilt_t*, dict_index_t*, unsigned char const*, que_thr_t*, unsigned char const**, unsigned short**, mem_block_info_t**, dtuple_t**, mtr_t*)::__PRETTY_FUNCTION__> "dberr_t Row_sel_get_clust_rec_for_mysql::operator()(row_prebuilt_t*, dict_index_t*, const rec_t*, que_thr_t*, const rec_t**, rec_offs**, mem_heap_t**, dtuple_t**, mtr_t*)") at assert.c:101
      #8  0x000055bca2c9d567 in Row_sel_get_clust_rec_for_mysql::operator() (this=0x7fbe521bf070, prebuilt=0x7fbe0c070e20, sec_index=0x7fbe0c06ac10, rec=0x7fbe5299c0a6 "\001\016\001\016\031PY\230", thr=0x7fbe0c071510, out_rec=0x7fbe521bef78, offsets=0x7fbe521bef98, offset_heap=0x7fbe521bef90, vrow=0x0, mtr=0x7fbe521bf900) at /data/src/10.4/storage/innobase/row/row0sel.cc:3357
      #9  0x000055bca2ca2fbb in row_search_mvcc (buf=0x7fbe0c076730 "\350\a", mode=PAGE_CUR_G, prebuilt=0x7fbe0c070e20, match_mode=0, direction=0) at /data/src/10.4/storage/innobase/row/row0sel.cc:5289
      #10 0x000055bca2c53b3f in row_search_for_mysql (buf=0x7fbe0c076730 "\350\a", mode=PAGE_CUR_G, prebuilt=0x7fbe0c070e20, match_mode=0, direction=0) at /data/src/10.4/storage/innobase/include/row0sel.ic:137
      #11 0x000055bca2c5fe02 in row_scan_index_for_mysql (prebuilt=0x7fbe0c070e20, index=0x7fbe0c06ac10, n_rows=0x7fbe521c02f0) at /data/src/10.4/storage/innobase/row/row0mysql.cc:4718
      #12 0x000055bca2abd11e in ha_innobase::check (this=0x7fbe0c070628, thd=0x7fbe0c000af0, check_opt=0x7fbe0c005cc8) at /data/src/10.4/storage/innobase/handler/ha_innodb.cc:14836
      #13 0x000055bca286ade2 in handler::ha_check (this=0x7fbe0c070628, thd=0x7fbe0c000af0, check_opt=0x7fbe0c005cc8) at /data/src/10.4/sql/handler.cc:4323
      #14 0x000055bca269e5a2 in mysql_admin_table(THD *, TABLE_LIST *, HA_CHECK_OPT *, const char *, thr_lock_type, bool, bool, uint, int (*)(THD *, TABLE_LIST *, HA_CHECK_OPT *), struct {...}, int (*)(THD *, TABLE_LIST *, HA_CHECK_OPT *)) (thd=0x7fbe0c000af0, tables=0x7fbe0c013250, check_opt=0x7fbe0c005cc8, operator_name=0x55bca324866c "check", lock_type=TL_READ_NO_INSERT, org_open_for_modify=false, repair_table_use_frm=false, extra_open_options=32, prepare_func=0x0, operator_func=(int (handler::*)(handler * const, THD *, HA_CHECK_OPT *)) 0x55bca286ac24 <handler::ha_check(THD*, st_ha_check_opt*)>, view_operator_func=0x55bca2626402 <view_check(THD*, TABLE_LIST*, st_ha_check_opt*)>) at /data/src/10.4/sql/sql_admin.cc:781
      #15 0x000055bca26a090c in Sql_cmd_check_table::execute (this=0x7fbe0c013918, thd=0x7fbe0c000af0) at /data/src/10.4/sql/sql_admin.cc:1348
      #16 0x000055bca251033e in mysql_execute_command (thd=0x7fbe0c000af0) at /data/src/10.4/sql/sql_parse.cc:6099
      #17 0x000055bca251582f in mysql_parse (thd=0x7fbe0c000af0, rawbuf=0x7fbe0c013198 "CHECK TABLE t2", length=14, parser_state=0x7fbe521c1570, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:7899
      #18 0x000055bca2501d64 in dispatch_command (command=COM_QUERY, thd=0x7fbe0c000af0, packet=0x7fbe0c0083a1 "", packet_length=14, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1834
      #19 0x000055bca2500506 in do_command (thd=0x7fbe0c000af0) at /data/src/10.4/sql/sql_parse.cc:1352
      #20 0x000055bca26895c4 in do_handle_one_connection (connect=0x55bca694f880) at /data/src/10.4/sql/sql_connect.cc:1412
      #21 0x000055bca2689313 in handle_one_connection (arg=0x55bca694f880) at /data/src/10.4/sql/sql_connect.cc:1316
      #22 0x000055bca3088c93 in pfs_spawn_thread (arg=0x55bca686d6f0) at /data/src/10.4/storage/perfschema/pfs.cc:1869
      #23 0x00007fbe5eda34a4 in start_thread (arg=0x7fbe521c2700) at pthread_create.c:456
      #24 0x00007fbe5ced7d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
      

      Reproducible on 10.4, 10.5, debug and non-debug builds are affected as described above.
      The test case is not applicable to earlier versions due to the unique blob.
      Couldn't reproduce after replacing the unique blob with text as (left (b , 20)) invisible structure.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              sachin.setiya.007 Sachin Setiya
              Reporter:
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated: