Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-17520 Instant ALTER TABLE for failure-free column type changes
  3. MDEV-17924

Failing assertion: page_is_comp(next_page) == page_is_comp(page) in btr0pcur.cc

    XMLWordPrintable

Details

    Description

      Note: sorry for the raw test case, I don't want to spend time polishing it. Most of those tables must be redundant, they just help to generate the eventual data which can of course be done without intermediaries.

      --source include/have_innodb.inc
       
      CREATE TABLE t1 (bcol9 BIT NOT NULL) WITH SYSTEM VERSIONING ENGINE=InnoDB;
       
      CREATE TABLE t2 (icol5 MEDIUMINT DEFAULT NULL) ENGINE=InnoDB;
      CREATE TABLE t3 (geocol5 MULTILINESTRING NOT NULL) ENGINE=InnoDB;
      CREATE TABLE t4 (icol1 INT UNSIGNED) ENGINE=InnoDB;
      REPLACE INTO t2 () VALUES (),(),(),();
      SELECT * FROM t2 INTO OUTFILE 'load_t2';
      LOAD DATA INFILE 'load_t2' REPLACE INTO TABLE t2;
      INSERT INTO t2 () VALUES (),();
      INSERT INTO t4 () VALUES (),(),();
       
      SET sql_mode= '';
       
      REPLACE INTO t1 () VALUES (),(),(),();
      LOAD DATA INFILE 'load_t2' REPLACE INTO TABLE t1;
      INSERT INTO t1 () VALUES (),();
      INSERT INTO t1 SELECT * FROM t2;
       
      INSERT IGNORE INTO t4 () VALUES (),(),(),();
      INSERT IGNORE INTO t2 () VALUES (),(),(),();
      SELECT * FROM t4 INTO OUTFILE 'load_t4';
      LOAD DATA INFILE 'load_t4' REPLACE INTO TABLE t4;
      LOAD DATA INFILE 'load_t4' REPLACE INTO TABLE t4;
      LOAD DATA INFILE 'load_t4' REPLACE INTO TABLE t4;
       
      INSERT IGNORE INTO t1 () VALUES (),(),(),();
      INSERT INTO t4 SELECT * FROM t4;
       
      INSERT INTO t1 SELECT * FROM t1;
      SELECT * FROM t1 INTO OUTFILE 'load_t1';
      INSERT IGNORE INTO t1 SELECT * FROM t1;
       
      INSERT INTO t3 SELECT * FROM t2;
      SELECT * FROM t3 INTO OUTFILE 'load_t3';
      LOAD DATA INFILE 'load_t3' IGNORE INTO TABLE t3;
      LOAD DATA INFILE 'load_t1' IGNORE INTO TABLE t1;
      INSERT INTO t1 SELECT * FROM t1;
       
      CREATE OR REPLACE TABLE t5 (tcol8 TIME) ENGINE=InnoDB;
      INSERT INTO t3 SELECT * FROM t4;
      INSERT IGNORE INTO t5 () VALUES (),(),(),();
      SELECT * FROM t5 INTO OUTFILE 'load_t5';
      LOAD DATA INFILE 'load_t5' IGNORE INTO TABLE t5;
      INSERT IGNORE INTO t1 () VALUES (),(),(),();
      INSERT INTO t5 SELECT * FROM t3;
      INSERT INTO t1 SELECT * FROM t3;
      INSERT INTO t1 SELECT * FROM t5;
      SET STATEMENT system_versioning_alter_history= KEEP FOR ALTER TABLE t1 MODIFY COLUMN bcol9 BIT, ALGORITHM=DEFAULT;
      REPLACE INTO t1 () VALUES ();
       
      SELECT * FROM t1;
      

      bb-10.4-MDEV-17520 b6639a3cf

      2018-12-07 10:41:28 0x7f0b7e52e700  InnoDB: Assertion failure in file /data/src/bb-10.4-MDEV-17520-2/storage/innobase/btr/btr0pcur.cc line 489
      InnoDB: Failing assertion: page_is_comp(next_page) == page_is_comp(page)
      InnoDB: We intentionally generate a memory trap.
       
      #5  0x00007fa8c91783fa in abort () from /lib/x86_64-linux-gnu/libc.so.6
      #6  0x0000563211dc1af9 in ut_dbg_assertion_failed (expr=0x5632124097b0 "page_is_comp(next_page) == page_is_comp(page)", file=0x563212409330 "/data/src/bb-10.4-MDEV-17520/storage/innobase/btr/btr0pcur.cc", line=489) at /data/src/bb-10.4-MDEV-17520/storage/innobase/ut/ut0dbg.cc:60
      #7  0x0000563211e0bcd9 in btr_pcur_move_to_next_page (cursor=0x7fa85806a208, mtr=0x7fa8b197ee50) at /data/src/bb-10.4-MDEV-17520/storage/innobase/btr/btr0pcur.cc:489
      #8  0x0000563211d339c8 in btr_pcur_move_to_next (cursor=0x7fa85806a208, mtr=0x7fa8b197ee50) at /data/src/bb-10.4-MDEV-17520/storage/innobase/include/btr0pcur.ic:339
      #9  0x0000563211d418e7 in row_search_mvcc (buf=0x7fa85805d040 <incomplete sequence \375>, mode=PAGE_CUR_G, prebuilt=0x7fa85806a048, match_mode=0, direction=1) at /data/src/bb-10.4-MDEV-17520/storage/innobase/row/row0sel.cc:5588
      #10 0x0000563211b9dea7 in ha_innobase::general_fetch (this=0x7fa85805d498, buf=0x7fa85805d040 <incomplete sequence \375>, direction=1, match_mode=0) at /data/src/bb-10.4-MDEV-17520/storage/innobase/handler/ha_innodb.cc:9541
      #11 0x0000563211b9e428 in ha_innobase::rnd_next (this=0x7fa85805d498, buf=0x7fa85805d040 <incomplete sequence \375>) at /data/src/bb-10.4-MDEV-17520/storage/innobase/handler/ha_innodb.cc:9750
      #12 0x0000563211871085 in handler::ha_rnd_next (this=0x7fa85805d498, buf=0x7fa85805d040 <incomplete sequence \375>) at /data/src/bb-10.4-MDEV-17520/sql/handler.cc:2765
      #13 0x00005632119f6c93 in rr_sequential (info=0x7fa858016fb0) at /data/src/bb-10.4-MDEV-17520/sql/records.cc:481
      #14 0x00005632114c19e1 in READ_RECORD::read_record (this=0x7fa858016fb0) at /data/src/bb-10.4-MDEV-17520/sql/records.h:73
      #15 0x00005632115d5cfe in sub_select (join=0x7fa858014dc8, join_tab=0x7fa858016ee8, end_of_records=false) at /data/src/bb-10.4-MDEV-17520/sql/sql_select.cc:19409
      #16 0x00005632115d518b in do_select (join=0x7fa858014dc8, procedure=0x0) at /data/src/bb-10.4-MDEV-17520/sql/sql_select.cc:18930
      #17 0x00005632115adbdf in JOIN::exec_inner (this=0x7fa858014dc8) at /data/src/bb-10.4-MDEV-17520/sql/sql_select.cc:4094
      #18 0x00005632115ad020 in JOIN::exec (this=0x7fa858014dc8) at /data/src/bb-10.4-MDEV-17520/sql/sql_select.cc:3888
      #19 0x00005632115ae2df in mysql_select (thd=0x7fa858000b00, tables=0x7fa858013f08, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7fa858014da0, unit=0x7fa8580049b0, select_lex=0x7fa858013980) at /data/src/bb-10.4-MDEV-17520/sql/sql_select.cc:4293
      #20 0x000056321159fbeb in handle_select (thd=0x7fa858000b00, lex=0x7fa8580048e8, result=0x7fa858014da0, setup_tables_done_option=0) at /data/src/bb-10.4-MDEV-17520/sql/sql_select.cc:385
      #21 0x0000563211569f62 in execute_sqlcom_select (thd=0x7fa858000b00, all_tables=0x7fa858013f08) at /data/src/bb-10.4-MDEV-17520/sql/sql_parse.cc:6555
      #22 0x00005632115605d2 in mysql_execute_command (thd=0x7fa858000b00) at /data/src/bb-10.4-MDEV-17520/sql/sql_parse.cc:3774
      #23 0x000056321156dd6e in mysql_parse (thd=0x7fa858000b00, rawbuf=0x7fa8580138f8 "SELECT * FROM t1", length=16, parser_state=0x7fa8b1980650, is_com_multi=false, is_next_command=false) at /data/src/bb-10.4-MDEV-17520/sql/sql_parse.cc:8092
      #24 0x000056321155b05c in dispatch_command (command=COM_QUERY, thd=0x7fa858000b00, packet=0x7fa85801bb21 "", packet_length=16, is_com_multi=false, is_next_command=false) at /data/src/bb-10.4-MDEV-17520/sql/sql_parse.cc:1851
      #25 0x0000563211559a80 in do_command (thd=0x7fa858000b00) at /data/src/bb-10.4-MDEV-17520/sql/sql_parse.cc:1396
      #26 0x00005632116c5168 in do_handle_one_connection (connect=0x56321531f7d0) at /data/src/bb-10.4-MDEV-17520/sql/sql_connect.cc:1402
      #27 0x00005632116c4eec in handle_one_connection (arg=0x56321531f7d0) at /data/src/bb-10.4-MDEV-17520/sql/sql_connect.cc:1308
      #28 0x00007fa8cac2b494 in start_thread (arg=0x7fa8b1981700) at pthread_create.c:333
      #29 0x00007fa8c922c93f in clone () from /lib/x86_64-linux-gnu/libc.so.6
      

      Not reproducible on current 10.4 branch bb9b4182e4.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.