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

Assertion `page_rec_is_leaf(rec)' failed in lock_rec_queue_validate upon SHOW ENGINE INNODB STATUS

    XMLWordPrintable

    Details

      Description

      Note: MDEV-14409 has been fixed, and indeed, 10.2 does not fail anymore, but 10.3 and 10.4 still do, a bit differently.

      10.3 95f3c142a4f

      mysqld: /data/src/10.3/storage/innobase/lock/lock0lock.cc:4883: bool lock_rec_queue_validate(bool, const buf_block_t*, const rec_t*, const dict_index_t*, const ulint*): Assertion `page_rec_is_leaf(rec)' failed.
      181204 14:09:53 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007f8cc4682ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
      #8  0x000055a03583663d in lock_rec_queue_validate (locked_lock_trx_sys=true, block=0x7f8c9fa4ee68, rec=0x7f8ca054c070 "supremum", index=0x7f8c5402eae8, offsets=0x7f8cc11af800) at /data/src/10.3/storage/innobase/lock/lock0lock.cc:4883
      #9  0x000055a0358377a3 in lock_rec_validate_page (block=0x7f8c9fa4ee68) at /data/src/10.3/storage/innobase/lock/lock0lock.cc:5096
      #10 0x000055a035837bed in lock_rec_block_validate (space_id=9, page_no=3) at /data/src/10.3/storage/innobase/lock/lock0lock.cc:5198
      #11 0x000055a035837fb9 in lock_validate () at /data/src/10.3/storage/innobase/lock/lock0lock.cc:5272
      #12 0x000055a035836072 in lock_print_info_all_transactions (file=0x55a037dafdd0) at /data/src/10.3/storage/innobase/lock/lock0lock.cc:4775
      #13 0x000055a035971397 in srv_printf_innodb_monitor (file=0x55a037dafdd0, nowait=0, trx_start_pos=0x7f8cc11b03b0, trx_end=0x7f8cc11b03b8) at /data/src/10.3/storage/innobase/srv/srv0srv.cc:1259
      #14 0x000055a0357bcc97 in innodb_show_status (hton=0x55a037c94280, thd=0x7f8c50000b00, stat_print=0x55a035496581 <stat_print(THD*, char const*, size_t, char const*, size_t, char const*, size_t)>) at /data/src/10.3/storage/innobase/handler/ha_innodb.cc:15665
      #15 0x000055a0357bd704 in innobase_show_status (hton=0x55a037c94280, thd=0x7f8c50000b00, stat_print=0x55a035496581 <stat_print(THD*, char const*, size_t, char const*, size_t, char const*, size_t)>, stat_type=HA_ENGINE_STATUS) at /data/src/10.3/storage/innobase/handler/ha_innodb.cc:16083
      #16 0x000055a03549691b in ha_show_status (thd=0x7f8c50000b00, db_type=0x55a037c94280, stat=HA_ENGINE_STATUS) at /data/src/10.3/sql/handler.cc:5896
      #17 0x000055a035191899 in mysql_execute_command (thd=0x7f8c50000b00) at /data/src/10.3/sql/sql_parse.cc:4007
      #18 0x000055a03519e7cb in mysql_parse (thd=0x7f8c50000b00, rawbuf=0x7f8c50015a68 "SHOW ENGINE INNODB STATUS /* QNO 107 CON_ID 12 */", length=49, parser_state=0x7f8cc11b1640, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:8091
      #19 0x000055a03518b97f in dispatch_command (command=COM_QUERY, thd=0x7f8c50000b00, packet=0x7f8c50421231 "", packet_length=50, is_com_multi=false, is_next_command=false) at /data/src/10.3/sql/sql_parse.cc:1850
      #20 0x000055a03518a3a3 in do_command (thd=0x7f8c50000b00) at /data/src/10.3/sql/sql_parse.cc:1395
      #21 0x000055a0352f20a0 in do_handle_one_connection (connect=0x55a0387bbe60) at /data/src/10.3/sql/sql_connect.cc:1402
      #22 0x000055a0352f1e24 in handle_one_connection (arg=0x55a0387bbe60) at /data/src/10.3/sql/sql_connect.cc:1308
      #23 0x00007f8cc613e494 in start_thread (arg=0x7f8cc11b2700) at pthread_create.c:333
      #24 0x00007f8cc473f93f in clone () from /lib/x86_64-linux-gnu/libc.so.6
       
      Query (0x7f8c50015a68): SHOW ENGINE INNODB STATUS /* QNO 107 CON_ID 12 */
      Connection ID (thread ID): 12
      Status: NOT_KILLED
      

      The grammar and test are the same as in MDEV-14409:

      RQG grammar mdev14409.yy

      thread2_init:
        CREATE TABLE `t1` (
          `t1` TEXT,
          `v1` VARCHAR(1),
          `t2` TEXT,
          `v2` VARCHAR(1),
          UNIQUE (`v2`),
          UNIQUE (`t2`(255))
        ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC
        ; CREATE TABLE `t2` LIKE `t1`
        ; CREATE TABLE `t3` LIKE `t1`
        ; CREATE TABLE `t4` LIKE `t1`
        ; INSERT IGNORE INTO `t1` VALUES vals,vals,vals,vals,vals,vals,vals,vals,vals,vals 
        ; INSERT IGNORE INTO `t2` VALUES vals,vals,vals,vals,vals,vals,vals,vals,vals,vals 
        ; INSERT IGNORE INTO `t3` VALUES vals,vals,vals,vals,vals,vals,vals,vals,vals,vals 
        ; INSERT IGNORE INTO `t4` VALUES vals,vals,vals,vals,vals,vals,vals,vals,vals,vals 
        ; SELECT * FROM `t1` INTO OUTFILE 'load.data.t1'
        ; SELECT * FROM `t2` INTO OUTFILE 'load.data.t2'
        ; SELECT * FROM `t3` INTO OUTFILE 'load.data.t3'
        ; SELECT * FROM `t4` INTO OUTFILE 'load.data.t4'
      ;
       
      vals:
        (_char(1024),_char(1),_char(1024),_char(1));
       
      thread1:
        SHOW ENGINE INNODB STATUS;
       
      query:
        DELETE FROM my_table LIMIT _digit |
        LOAD DATA INFILE { "'load.data.t".$prng->int(1,4)."'" } REPLACE INTO TABLE my_table
      ;
       
      my_table:
        t1 | t2 | t3 | t4 ;
      

      Run as

      perl ./runall-new.pl  --basedir=/data/bld/10.2 --vardir=/dev/shm/vardir --duration=300 --threads=2 --grammar=mdev14409.yy --skip-gendata
      

      Don't forget to use your basedir and check whether the vardir path is okay for you.

      Note: If something does not work with your version of RQG, try https://github.com/MariaDB/randgen branch elenst-mdev14409.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              kevg Eugene Kosov
              Reporter:
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated: