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

Assertion `page_rec_is_user_rec(rec)' failed in PageBulk::getSplitRec

Details

    Description

      10.8 62419b17

      mysqld: /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:642: rec_t* PageBulk::getSplitRec(): Assertion `page_rec_is_user_rec(rec)' failed.
      220610 12:36:59 [ERROR] mysqld got signal 6 ;
       
      #1  0x000000006fc4c7f1 in __GI_abort () at abort.c:79
      #2  0x000000006fc3c3fa in __assert_fail_base (fmt=0x6fdc36c0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5568f769eecf "page_rec_is_user_rec(rec)", 
          file=file@entry=0x5568f769ebb8 "/home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc", line=line@entry=642, 
          function=function@entry=0x5568f76a0f70 <PageBulk::getSplitRec()::__PRETTY_FUNCTION__> "rec_t* PageBulk::getSplitRec()") at assert.c:92
      #3  0x000000006fc3c472 in __GI___assert_fail (assertion=0x5568f769eecf "page_rec_is_user_rec(rec)", file=0x5568f769ebb8 "/home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc", 
          line=642, function=0x5568f76a0f70 <PageBulk::getSplitRec()::__PRETTY_FUNCTION__> "rec_t* PageBulk::getSplitRec()") at assert.c:101
      #4  0x00005568f6ef73a6 in PageBulk::getSplitRec (this=0x7fec8c1cae20) at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:642
      #5  0x00005568f6ef7be8 in BtrBulk::pageSplit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x6c271820dcd0)
          at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:895
      #6  0x00005568f6ef7f83 in BtrBulk::pageCommit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x6c271820dcd0, insert_father=true)
          at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:948
      #7  0x00005568f6ef7c43 in BtrBulk::pageSplit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x7fec8c0a7260)
          at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:900
      #8  0x00005568f6ef7f83 in BtrBulk::pageCommit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x7fec8c0a7260, insert_father=true)
          at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:948
      #9  0x00005568f6ef8631 in BtrBulk::insert (this=0xd9068174980, tuple=0x7fec8c2625f0, level=0) at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:1082
      #10 0x00005568f6de0b2a in BtrBulk::insert (this=0xd9068174980, tuple=0x7fec8c2625f0) at /home/mariadb/split/10.8/storage/innobase/include/btr0bulk.h:301
      #11 0x00005568f6e1794d in row_merge_insert_index_tuples (index=0xd90680607a0, old_table=0x55f208277b90, fd=..., block=0x0, row_buf=0x7fec8c14b080, btr_bulk=0xd9068174980, 
          table_total_rows=301, pct_progress=0, pct_cost=50, crypt_block=0x0, space=154, stage=0x0, blob_file=0x0) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:3879
      #12 0x00005568f6e13ab1 in row_merge_read_clustered_index (trx=0x78c22a3ecb80, table=0x6c27182103b0, old_table=0x55f208277b90, new_table=0x55f2080bf680, online=true, 
          index=0x7fec8c116b40, fts_sort_idx=0x0, psort_info=0x0, files=0x7fec8c14e7f0, key_numbers=0x7fec8c116b48, n_index=1, defaults=0x0, add_v=0x0, col_map=0x7fec8c1912d0, 
          add_autoinc=18446744073709551615, sequence=..., block=0x3d305ba9d000 "", skip_pk_sort=true, tmpfd=0x6c271820f408, stage=0x7fec8c0c7230, pct_cost=50, crypt_block=0x0, 
          eval_table=0x6c27182103b0, allow_not_null=false) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:2715
      #13 0x00005568f6e1a844 in row_merge_build_indexes (trx=0x78c22a3ecb80, old_table=0x55f208277b90, new_table=0x55f2080bf680, online=true, indexes=0x7fec8c116b40, 
          key_numbers=0x7fec8c116b48, n_indexes=1, table=0x6c27182103b0, defaults=0x0, col_map=0x7fec8c1912d0, add_autoinc=18446744073709551615, sequence=..., skip_pk_sort=true, 
          stage=0x7fec8c0c7230, add_v=0x0, eval_table=0x6c27182103b0, allow_not_null=false) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:4796
      #14 0x00005568f6cbbc82 in ha_innobase::inplace_alter_table (this=0xd906818d820, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0)
          at /home/mariadb/split/10.8/storage/innobase/handler/handler0alter.cc:8523
      #15 0x00005568f6646bbb in handler::ha_inplace_alter_table (this=0xd906818d820, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0) at /home/mariadb/split/10.8/sql/handler.h:4601
      #16 0x00005568f6c0879e in ha_partition::inplace_alter_table (this=0xd90681542d0, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0)
          at /home/mariadb/split/10.8/sql/ha_partition.cc:10526
      #17 0x00005568f6646bbb in handler::ha_inplace_alter_table (this=0xd90681542d0, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0) at /home/mariadb/split/10.8/sql/handler.h:4601
      #18 0x00005568f6637962 in mysql_inplace_alter_table (thd=0x7fec8c000d78, table_list=0x7fec8c013ec8, table=0xd90680cb2f8, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0, 
          target_mdl_request=0x6c2718210b80, ddl_log_state=0x6c2718210290, trigger_param=0x6c2718210770, alter_ctx=0x6c27182116e0, partial_alter=@0x6c2718210196: false, 
          start_alter_id=@0x6c27182101d0: 0, if_exists=true) at /home/mariadb/split/10.8/sql/sql_table.cc:7671
      #19 0x00005568f6640c5a in mysql_alter_table (thd=0x7fec8c000d78, new_db=0x7fec8c005820, new_name=0x7fec8c005c38, create_info=0x6c27182124f0, table_list=0x7fec8c013ec8, 
          alter_info=0x6c2718212400, order_num=0, order=0x0, ignore=false, if_exists=true) at /home/mariadb/split/10.8/sql/sql_table.cc:10705
      #20 0x00005568f66f2103 in Sql_cmd_alter_table::execute (this=0x7fec8c0145b0, thd=0x7fec8c000d78) at /home/mariadb/split/10.8/sql/sql_alter.cc:547
      #21 0x00005568f6526a8c in mysql_execute_command (thd=0x7fec8c000d78, is_called_from_prepared_stmt=false) at /home/mariadb/split/10.8/sql/sql_parse.cc:5988
      #22 0x00005568f652caba in mysql_parse (thd=0x7fec8c000d78, rawbuf=0x7fec8c013cf0 "ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED", length=88, 
          parser_state=0x6c2718213550) at /home/mariadb/split/10.8/sql/sql_parse.cc:8027
      ---Type <return> to continue, or q <return> to quit---
      #23 0x00005568f65191b4 in dispatch_command (command=COM_QUERY, thd=0x7fec8c000d78, 
          packet=0x7fec8c00b649 "ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED", packet_length=88, blocking=true)
          at /home/mariadb/split/10.8/sql/sql_parse.cc:1894
      #24 0x00005568f6517b39 in do_command (thd=0x7fec8c000d78, blocking=true) at /home/mariadb/split/10.8/sql/sql_parse.cc:1407
      #25 0x00005568f66e6f71 in do_handle_one_connection (connect=0x73c613f67438, put_in_cache=true) at /home/mariadb/split/10.8/sql/sql_connect.cc:1418
      #26 0x00005568f66e6c0c in handle_one_connection (arg=0x73c613f67438) at /home/mariadb/split/10.8/sql/sql_connect.cc:1312
      #27 0x00007fec79a8c6db in start_thread (arg=0x6c2718214700) at pthread_create.c:463
      #28 0x000000006fd2d61f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      I was reproducing it with this:

      git clone https://github.com/MariaDB/randgen --branch mdev28797 rqg-mdev28797
      cd rqg-mdev28797
      . ./mdev28797.cmd <basedir> [other options if needed]
      

      Without extra options, it runs 10 trials of an RQG test in shm and stops after the first failure of any kind.

      Reliability of the test is unclear though. On my machine it seems to fail more readily on SSD than in shm; on a lab machine, it seemed to happen more readily in shm with rr than in shm without rr or than on disk regardless rr. But statistics is insufficient to draw conclusions.
      On 10.7 I couldn't reproduce it at all in a few attempts. However, I've seen a different probably related assertion failure

      10.7 fe75e5e5

      mysqld: /data/src/10.7/storage/innobase/btr/btr0btr.cc:2790: rec_t* btr_page_split_and_insert(ulint, btr_cur_t*, rec_offs**, mem_heap_t**, const dtuple_t*, ulint, mtr_t*, dberr_t*): Assertion `*err == DB_SUCCESS' failed.
      220610 16:51:32 [ERROR] mysqld got signal 6 ;
      

      Attachments

        1. earth2kb.jpg
          earth2kb.jpg
          2 kB
        2. earth5kb.jpg
          earth5kb.jpg
          5 kB
        3. ja-4kb.txt
          3 kB

        Issue Links

          Activity

            elenst Elena Stepanova created issue -
            elenst Elena Stepanova made changes -
            Field Original Value New Value
            Labels rr-profile

            This is a table rebuild into the ROW_FORMAT=COMPRESSED format.

            ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED;
            

            The assumption looks invalid in a ROW_FORMAT=COMPRESSED leaf page. Those pages are allowed to contain only one record.

            639		/* Keep at least one record on left page */
            640		if (page_rec_is_second(rec, m_page)) {
            641			rec = page_rec_get_next(rec);
            642			ut_ad(page_rec_is_user_rec(rec));
            643		}
            

            I did recently touch this code in MDEV-28457, but even before that, the incorrect assumption was there:

                    /* Keep at least one record on left page */
                    if (page_rec_is_infimum(page_rec_get_prev(rec))) {
                            rec = page_rec_get_next(rec);
                            ut_ad(page_rec_is_user_rec(rec));
                    }
            

            I only replaced the more expensive and crash-prone if condition with an equivalent one that simply dereferences the next-record pointer of the page infimum twice.

            While I know that the assumption is invalid, it is not obvious to me how this should be fixed.

            marko Marko Mäkelä added a comment - This is a table rebuild into the ROW_FORMAT=COMPRESSED format. ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED; The assumption looks invalid in a ROW_FORMAT=COMPRESSED leaf page. Those pages are allowed to contain only one record. 639 /* Keep at least one record on left page */ 640 if (page_rec_is_second(rec, m_page)) { 641 rec = page_rec_get_next(rec); 642 ut_ad(page_rec_is_user_rec(rec)); 643 } I did recently touch this code in MDEV-28457 , but even before that, the incorrect assumption was there: /* Keep at least one record on left page */ if (page_rec_is_infimum(page_rec_get_prev(rec))) { rec = page_rec_get_next(rec); ut_ad(page_rec_is_user_rec(rec)); } I only replaced the more expensive and crash-prone if condition with an equivalent one that simply dereferences the next-record pointer of the page infimum twice. While I know that the assumption is invalid, it is not obvious to me how this should be fixed.
            marko Marko Mäkelä made changes -
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.4 [ 22408 ]
            Fix Version/s 10.5 [ 23123 ]
            Fix Version/s 10.6 [ 24028 ]
            Fix Version/s 10.7 [ 24805 ]
            Affects Version/s 10.2 [ 14601 ]
            Affects Version/s 10.3 [ 22126 ]
            Affects Version/s 10.4 [ 22408 ]
            Affects Version/s 10.5 [ 23123 ]
            Affects Version/s 10.6 [ 24028 ]
            Affects Version/s 10.7 [ 24805 ]
            Assignee Elena Stepanova [ elenst ] Thirunarayanan Balathandayuthapani [ thiru ]
            Labels rr-profile rr-profile upstream
            elenst Elena Stepanova made changes -
            Description {noformat:title=10.8 62419b17}
            mysqld: /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:642: rec_t* PageBulk::getSplitRec(): Assertion `page_rec_is_user_rec(rec)' failed.
            220610 12:36:59 [ERROR] mysqld got signal 6 ;

            #1 0x000000006fc4c7f1 in __GI_abort () at abort.c:79
            #2 0x000000006fc3c3fa in __assert_fail_base (fmt=0x6fdc36c0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5568f769eecf "page_rec_is_user_rec(rec)",
                file=file@entry=0x5568f769ebb8 "/home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc", line=line@entry=642,
                function=function@entry=0x5568f76a0f70 <PageBulk::getSplitRec()::__PRETTY_FUNCTION__> "rec_t* PageBulk::getSplitRec()") at assert.c:92
            #3 0x000000006fc3c472 in __GI___assert_fail (assertion=0x5568f769eecf "page_rec_is_user_rec(rec)", file=0x5568f769ebb8 "/home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc",
                line=642, function=0x5568f76a0f70 <PageBulk::getSplitRec()::__PRETTY_FUNCTION__> "rec_t* PageBulk::getSplitRec()") at assert.c:101
            #4 0x00005568f6ef73a6 in PageBulk::getSplitRec (this=0x7fec8c1cae20) at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:642
            #5 0x00005568f6ef7be8 in BtrBulk::pageSplit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x6c271820dcd0)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:895
            #6 0x00005568f6ef7f83 in BtrBulk::pageCommit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x6c271820dcd0, insert_father=true)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:948
            #7 0x00005568f6ef7c43 in BtrBulk::pageSplit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x7fec8c0a7260)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:900
            #8 0x00005568f6ef7f83 in BtrBulk::pageCommit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x7fec8c0a7260, insert_father=true)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:948
            #9 0x00005568f6ef8631 in BtrBulk::insert (this=0xd9068174980, tuple=0x7fec8c2625f0, level=0) at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:1082
            #10 0x00005568f6de0b2a in BtrBulk::insert (this=0xd9068174980, tuple=0x7fec8c2625f0) at /home/mariadb/split/10.8/storage/innobase/include/btr0bulk.h:301
            #11 0x00005568f6e1794d in row_merge_insert_index_tuples (index=0xd90680607a0, old_table=0x55f208277b90, fd=..., block=0x0, row_buf=0x7fec8c14b080, btr_bulk=0xd9068174980,
                table_total_rows=301, pct_progress=0, pct_cost=50, crypt_block=0x0, space=154, stage=0x0, blob_file=0x0) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:3879
            #12 0x00005568f6e13ab1 in row_merge_read_clustered_index (trx=0x78c22a3ecb80, table=0x6c27182103b0, old_table=0x55f208277b90, new_table=0x55f2080bf680, online=true,
                index=0x7fec8c116b40, fts_sort_idx=0x0, psort_info=0x0, files=0x7fec8c14e7f0, key_numbers=0x7fec8c116b48, n_index=1, defaults=0x0, add_v=0x0, col_map=0x7fec8c1912d0,
                add_autoinc=18446744073709551615, sequence=..., block=0x3d305ba9d000 "", skip_pk_sort=true, tmpfd=0x6c271820f408, stage=0x7fec8c0c7230, pct_cost=50, crypt_block=0x0,
                eval_table=0x6c27182103b0, allow_not_null=false) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:2715
            #13 0x00005568f6e1a844 in row_merge_build_indexes (trx=0x78c22a3ecb80, old_table=0x55f208277b90, new_table=0x55f2080bf680, online=true, indexes=0x7fec8c116b40,
                key_numbers=0x7fec8c116b48, n_indexes=1, table=0x6c27182103b0, defaults=0x0, col_map=0x7fec8c1912d0, add_autoinc=18446744073709551615, sequence=..., skip_pk_sort=true,
                stage=0x7fec8c0c7230, add_v=0x0, eval_table=0x6c27182103b0, allow_not_null=false) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:4796
            #14 0x00005568f6cbbc82 in ha_innobase::inplace_alter_table (this=0xd906818d820, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0)
                at /home/mariadb/split/10.8/storage/innobase/handler/handler0alter.cc:8523
            #15 0x00005568f6646bbb in handler::ha_inplace_alter_table (this=0xd906818d820, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0) at /home/mariadb/split/10.8/sql/handler.h:4601
            #16 0x00005568f6c0879e in ha_partition::inplace_alter_table (this=0xd90681542d0, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0)
                at /home/mariadb/split/10.8/sql/ha_partition.cc:10526
            #17 0x00005568f6646bbb in handler::ha_inplace_alter_table (this=0xd90681542d0, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0) at /home/mariadb/split/10.8/sql/handler.h:4601
            #18 0x00005568f6637962 in mysql_inplace_alter_table (thd=0x7fec8c000d78, table_list=0x7fec8c013ec8, table=0xd90680cb2f8, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0,
                target_mdl_request=0x6c2718210b80, ddl_log_state=0x6c2718210290, trigger_param=0x6c2718210770, alter_ctx=0x6c27182116e0, partial_alter=@0x6c2718210196: false,
                start_alter_id=@0x6c27182101d0: 0, if_exists=true) at /home/mariadb/split/10.8/sql/sql_table.cc:7671
            #19 0x00005568f6640c5a in mysql_alter_table (thd=0x7fec8c000d78, new_db=0x7fec8c005820, new_name=0x7fec8c005c38, create_info=0x6c27182124f0, table_list=0x7fec8c013ec8,
                alter_info=0x6c2718212400, order_num=0, order=0x0, ignore=false, if_exists=true) at /home/mariadb/split/10.8/sql/sql_table.cc:10705
            #20 0x00005568f66f2103 in Sql_cmd_alter_table::execute (this=0x7fec8c0145b0, thd=0x7fec8c000d78) at /home/mariadb/split/10.8/sql/sql_alter.cc:547
            #21 0x00005568f6526a8c in mysql_execute_command (thd=0x7fec8c000d78, is_called_from_prepared_stmt=false) at /home/mariadb/split/10.8/sql/sql_parse.cc:5988
            #22 0x00005568f652caba in mysql_parse (thd=0x7fec8c000d78, rawbuf=0x7fec8c013cf0 "ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED", length=88,
                parser_state=0x6c2718213550) at /home/mariadb/split/10.8/sql/sql_parse.cc:8027
            ---Type <return> to continue, or q <return> to quit---
            #23 0x00005568f65191b4 in dispatch_command (command=COM_QUERY, thd=0x7fec8c000d78,
                packet=0x7fec8c00b649 "ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED", packet_length=88, blocking=true)
                at /home/mariadb/split/10.8/sql/sql_parse.cc:1894
            #24 0x00005568f6517b39 in do_command (thd=0x7fec8c000d78, blocking=true) at /home/mariadb/split/10.8/sql/sql_parse.cc:1407
            #25 0x00005568f66e6f71 in do_handle_one_connection (connect=0x73c613f67438, put_in_cache=true) at /home/mariadb/split/10.8/sql/sql_connect.cc:1418
            #26 0x00005568f66e6c0c in handle_one_connection (arg=0x73c613f67438) at /home/mariadb/split/10.8/sql/sql_connect.cc:1312
            #27 0x00007fec79a8c6db in start_thread (arg=0x6c2718214700) at pthread_create.c:463
            #28 0x000000006fd2d61f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            {noformat}
            {noformat:title=10.8 62419b17}
            mysqld: /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:642: rec_t* PageBulk::getSplitRec(): Assertion `page_rec_is_user_rec(rec)' failed.
            220610 12:36:59 [ERROR] mysqld got signal 6 ;

            #1 0x000000006fc4c7f1 in __GI_abort () at abort.c:79
            #2 0x000000006fc3c3fa in __assert_fail_base (fmt=0x6fdc36c0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5568f769eecf "page_rec_is_user_rec(rec)",
                file=file@entry=0x5568f769ebb8 "/home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc", line=line@entry=642,
                function=function@entry=0x5568f76a0f70 <PageBulk::getSplitRec()::__PRETTY_FUNCTION__> "rec_t* PageBulk::getSplitRec()") at assert.c:92
            #3 0x000000006fc3c472 in __GI___assert_fail (assertion=0x5568f769eecf "page_rec_is_user_rec(rec)", file=0x5568f769ebb8 "/home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc",
                line=642, function=0x5568f76a0f70 <PageBulk::getSplitRec()::__PRETTY_FUNCTION__> "rec_t* PageBulk::getSplitRec()") at assert.c:101
            #4 0x00005568f6ef73a6 in PageBulk::getSplitRec (this=0x7fec8c1cae20) at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:642
            #5 0x00005568f6ef7be8 in BtrBulk::pageSplit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x6c271820dcd0)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:895
            #6 0x00005568f6ef7f83 in BtrBulk::pageCommit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x6c271820dcd0, insert_father=true)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:948
            #7 0x00005568f6ef7c43 in BtrBulk::pageSplit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x7fec8c0a7260)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:900
            #8 0x00005568f6ef7f83 in BtrBulk::pageCommit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x7fec8c0a7260, insert_father=true)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:948
            #9 0x00005568f6ef8631 in BtrBulk::insert (this=0xd9068174980, tuple=0x7fec8c2625f0, level=0) at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:1082
            #10 0x00005568f6de0b2a in BtrBulk::insert (this=0xd9068174980, tuple=0x7fec8c2625f0) at /home/mariadb/split/10.8/storage/innobase/include/btr0bulk.h:301
            #11 0x00005568f6e1794d in row_merge_insert_index_tuples (index=0xd90680607a0, old_table=0x55f208277b90, fd=..., block=0x0, row_buf=0x7fec8c14b080, btr_bulk=0xd9068174980,
                table_total_rows=301, pct_progress=0, pct_cost=50, crypt_block=0x0, space=154, stage=0x0, blob_file=0x0) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:3879
            #12 0x00005568f6e13ab1 in row_merge_read_clustered_index (trx=0x78c22a3ecb80, table=0x6c27182103b0, old_table=0x55f208277b90, new_table=0x55f2080bf680, online=true,
                index=0x7fec8c116b40, fts_sort_idx=0x0, psort_info=0x0, files=0x7fec8c14e7f0, key_numbers=0x7fec8c116b48, n_index=1, defaults=0x0, add_v=0x0, col_map=0x7fec8c1912d0,
                add_autoinc=18446744073709551615, sequence=..., block=0x3d305ba9d000 "", skip_pk_sort=true, tmpfd=0x6c271820f408, stage=0x7fec8c0c7230, pct_cost=50, crypt_block=0x0,
                eval_table=0x6c27182103b0, allow_not_null=false) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:2715
            #13 0x00005568f6e1a844 in row_merge_build_indexes (trx=0x78c22a3ecb80, old_table=0x55f208277b90, new_table=0x55f2080bf680, online=true, indexes=0x7fec8c116b40,
                key_numbers=0x7fec8c116b48, n_indexes=1, table=0x6c27182103b0, defaults=0x0, col_map=0x7fec8c1912d0, add_autoinc=18446744073709551615, sequence=..., skip_pk_sort=true,
                stage=0x7fec8c0c7230, add_v=0x0, eval_table=0x6c27182103b0, allow_not_null=false) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:4796
            #14 0x00005568f6cbbc82 in ha_innobase::inplace_alter_table (this=0xd906818d820, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0)
                at /home/mariadb/split/10.8/storage/innobase/handler/handler0alter.cc:8523
            #15 0x00005568f6646bbb in handler::ha_inplace_alter_table (this=0xd906818d820, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0) at /home/mariadb/split/10.8/sql/handler.h:4601
            #16 0x00005568f6c0879e in ha_partition::inplace_alter_table (this=0xd90681542d0, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0)
                at /home/mariadb/split/10.8/sql/ha_partition.cc:10526
            #17 0x00005568f6646bbb in handler::ha_inplace_alter_table (this=0xd90681542d0, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0) at /home/mariadb/split/10.8/sql/handler.h:4601
            #18 0x00005568f6637962 in mysql_inplace_alter_table (thd=0x7fec8c000d78, table_list=0x7fec8c013ec8, table=0xd90680cb2f8, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0,
                target_mdl_request=0x6c2718210b80, ddl_log_state=0x6c2718210290, trigger_param=0x6c2718210770, alter_ctx=0x6c27182116e0, partial_alter=@0x6c2718210196: false,
                start_alter_id=@0x6c27182101d0: 0, if_exists=true) at /home/mariadb/split/10.8/sql/sql_table.cc:7671
            #19 0x00005568f6640c5a in mysql_alter_table (thd=0x7fec8c000d78, new_db=0x7fec8c005820, new_name=0x7fec8c005c38, create_info=0x6c27182124f0, table_list=0x7fec8c013ec8,
                alter_info=0x6c2718212400, order_num=0, order=0x0, ignore=false, if_exists=true) at /home/mariadb/split/10.8/sql/sql_table.cc:10705
            #20 0x00005568f66f2103 in Sql_cmd_alter_table::execute (this=0x7fec8c0145b0, thd=0x7fec8c000d78) at /home/mariadb/split/10.8/sql/sql_alter.cc:547
            #21 0x00005568f6526a8c in mysql_execute_command (thd=0x7fec8c000d78, is_called_from_prepared_stmt=false) at /home/mariadb/split/10.8/sql/sql_parse.cc:5988
            #22 0x00005568f652caba in mysql_parse (thd=0x7fec8c000d78, rawbuf=0x7fec8c013cf0 "ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED", length=88,
                parser_state=0x6c2718213550) at /home/mariadb/split/10.8/sql/sql_parse.cc:8027
            ---Type <return> to continue, or q <return> to quit---
            #23 0x00005568f65191b4 in dispatch_command (command=COM_QUERY, thd=0x7fec8c000d78,
                packet=0x7fec8c00b649 "ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED", packet_length=88, blocking=true)
                at /home/mariadb/split/10.8/sql/sql_parse.cc:1894
            #24 0x00005568f6517b39 in do_command (thd=0x7fec8c000d78, blocking=true) at /home/mariadb/split/10.8/sql/sql_parse.cc:1407
            #25 0x00005568f66e6f71 in do_handle_one_connection (connect=0x73c613f67438, put_in_cache=true) at /home/mariadb/split/10.8/sql/sql_connect.cc:1418
            #26 0x00005568f66e6c0c in handle_one_connection (arg=0x73c613f67438) at /home/mariadb/split/10.8/sql/sql_connect.cc:1312
            #27 0x00007fec79a8c6db in start_thread (arg=0x6c2718214700) at pthread_create.c:463
            #28 0x000000006fd2d61f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            {noformat}

            I was reproducing it with this:
            {noformat}
            git clone https://github.com/MariaDB/randgen --branch mdev28797 rqg-mdev28797
            cd rqg-mdev28797
            . ./mdev28797.cmd <basedir> [other options if needed]
            {noformat}
            Without extra options, it runs 10 trials of an RQG test in shm and stops after the first failure of any kind.

            Reliability of the test is unclear though. On my machine it seems to fail more readily on SSD than in shm; on a lab machine, it seemed to happen more readily in shm with rr than in shm without rr or than on disk regardless rr. But statistics is insufficient to draw conclusions.
            On 10.7 I couldn't reproduce it at all in a few attempts.
            elenst Elena Stepanova made changes -
            Description {noformat:title=10.8 62419b17}
            mysqld: /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:642: rec_t* PageBulk::getSplitRec(): Assertion `page_rec_is_user_rec(rec)' failed.
            220610 12:36:59 [ERROR] mysqld got signal 6 ;

            #1 0x000000006fc4c7f1 in __GI_abort () at abort.c:79
            #2 0x000000006fc3c3fa in __assert_fail_base (fmt=0x6fdc36c0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5568f769eecf "page_rec_is_user_rec(rec)",
                file=file@entry=0x5568f769ebb8 "/home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc", line=line@entry=642,
                function=function@entry=0x5568f76a0f70 <PageBulk::getSplitRec()::__PRETTY_FUNCTION__> "rec_t* PageBulk::getSplitRec()") at assert.c:92
            #3 0x000000006fc3c472 in __GI___assert_fail (assertion=0x5568f769eecf "page_rec_is_user_rec(rec)", file=0x5568f769ebb8 "/home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc",
                line=642, function=0x5568f76a0f70 <PageBulk::getSplitRec()::__PRETTY_FUNCTION__> "rec_t* PageBulk::getSplitRec()") at assert.c:101
            #4 0x00005568f6ef73a6 in PageBulk::getSplitRec (this=0x7fec8c1cae20) at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:642
            #5 0x00005568f6ef7be8 in BtrBulk::pageSplit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x6c271820dcd0)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:895
            #6 0x00005568f6ef7f83 in BtrBulk::pageCommit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x6c271820dcd0, insert_father=true)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:948
            #7 0x00005568f6ef7c43 in BtrBulk::pageSplit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x7fec8c0a7260)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:900
            #8 0x00005568f6ef7f83 in BtrBulk::pageCommit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x7fec8c0a7260, insert_father=true)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:948
            #9 0x00005568f6ef8631 in BtrBulk::insert (this=0xd9068174980, tuple=0x7fec8c2625f0, level=0) at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:1082
            #10 0x00005568f6de0b2a in BtrBulk::insert (this=0xd9068174980, tuple=0x7fec8c2625f0) at /home/mariadb/split/10.8/storage/innobase/include/btr0bulk.h:301
            #11 0x00005568f6e1794d in row_merge_insert_index_tuples (index=0xd90680607a0, old_table=0x55f208277b90, fd=..., block=0x0, row_buf=0x7fec8c14b080, btr_bulk=0xd9068174980,
                table_total_rows=301, pct_progress=0, pct_cost=50, crypt_block=0x0, space=154, stage=0x0, blob_file=0x0) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:3879
            #12 0x00005568f6e13ab1 in row_merge_read_clustered_index (trx=0x78c22a3ecb80, table=0x6c27182103b0, old_table=0x55f208277b90, new_table=0x55f2080bf680, online=true,
                index=0x7fec8c116b40, fts_sort_idx=0x0, psort_info=0x0, files=0x7fec8c14e7f0, key_numbers=0x7fec8c116b48, n_index=1, defaults=0x0, add_v=0x0, col_map=0x7fec8c1912d0,
                add_autoinc=18446744073709551615, sequence=..., block=0x3d305ba9d000 "", skip_pk_sort=true, tmpfd=0x6c271820f408, stage=0x7fec8c0c7230, pct_cost=50, crypt_block=0x0,
                eval_table=0x6c27182103b0, allow_not_null=false) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:2715
            #13 0x00005568f6e1a844 in row_merge_build_indexes (trx=0x78c22a3ecb80, old_table=0x55f208277b90, new_table=0x55f2080bf680, online=true, indexes=0x7fec8c116b40,
                key_numbers=0x7fec8c116b48, n_indexes=1, table=0x6c27182103b0, defaults=0x0, col_map=0x7fec8c1912d0, add_autoinc=18446744073709551615, sequence=..., skip_pk_sort=true,
                stage=0x7fec8c0c7230, add_v=0x0, eval_table=0x6c27182103b0, allow_not_null=false) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:4796
            #14 0x00005568f6cbbc82 in ha_innobase::inplace_alter_table (this=0xd906818d820, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0)
                at /home/mariadb/split/10.8/storage/innobase/handler/handler0alter.cc:8523
            #15 0x00005568f6646bbb in handler::ha_inplace_alter_table (this=0xd906818d820, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0) at /home/mariadb/split/10.8/sql/handler.h:4601
            #16 0x00005568f6c0879e in ha_partition::inplace_alter_table (this=0xd90681542d0, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0)
                at /home/mariadb/split/10.8/sql/ha_partition.cc:10526
            #17 0x00005568f6646bbb in handler::ha_inplace_alter_table (this=0xd90681542d0, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0) at /home/mariadb/split/10.8/sql/handler.h:4601
            #18 0x00005568f6637962 in mysql_inplace_alter_table (thd=0x7fec8c000d78, table_list=0x7fec8c013ec8, table=0xd90680cb2f8, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0,
                target_mdl_request=0x6c2718210b80, ddl_log_state=0x6c2718210290, trigger_param=0x6c2718210770, alter_ctx=0x6c27182116e0, partial_alter=@0x6c2718210196: false,
                start_alter_id=@0x6c27182101d0: 0, if_exists=true) at /home/mariadb/split/10.8/sql/sql_table.cc:7671
            #19 0x00005568f6640c5a in mysql_alter_table (thd=0x7fec8c000d78, new_db=0x7fec8c005820, new_name=0x7fec8c005c38, create_info=0x6c27182124f0, table_list=0x7fec8c013ec8,
                alter_info=0x6c2718212400, order_num=0, order=0x0, ignore=false, if_exists=true) at /home/mariadb/split/10.8/sql/sql_table.cc:10705
            #20 0x00005568f66f2103 in Sql_cmd_alter_table::execute (this=0x7fec8c0145b0, thd=0x7fec8c000d78) at /home/mariadb/split/10.8/sql/sql_alter.cc:547
            #21 0x00005568f6526a8c in mysql_execute_command (thd=0x7fec8c000d78, is_called_from_prepared_stmt=false) at /home/mariadb/split/10.8/sql/sql_parse.cc:5988
            #22 0x00005568f652caba in mysql_parse (thd=0x7fec8c000d78, rawbuf=0x7fec8c013cf0 "ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED", length=88,
                parser_state=0x6c2718213550) at /home/mariadb/split/10.8/sql/sql_parse.cc:8027
            ---Type <return> to continue, or q <return> to quit---
            #23 0x00005568f65191b4 in dispatch_command (command=COM_QUERY, thd=0x7fec8c000d78,
                packet=0x7fec8c00b649 "ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED", packet_length=88, blocking=true)
                at /home/mariadb/split/10.8/sql/sql_parse.cc:1894
            #24 0x00005568f6517b39 in do_command (thd=0x7fec8c000d78, blocking=true) at /home/mariadb/split/10.8/sql/sql_parse.cc:1407
            #25 0x00005568f66e6f71 in do_handle_one_connection (connect=0x73c613f67438, put_in_cache=true) at /home/mariadb/split/10.8/sql/sql_connect.cc:1418
            #26 0x00005568f66e6c0c in handle_one_connection (arg=0x73c613f67438) at /home/mariadb/split/10.8/sql/sql_connect.cc:1312
            #27 0x00007fec79a8c6db in start_thread (arg=0x6c2718214700) at pthread_create.c:463
            #28 0x000000006fd2d61f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            {noformat}

            I was reproducing it with this:
            {noformat}
            git clone https://github.com/MariaDB/randgen --branch mdev28797 rqg-mdev28797
            cd rqg-mdev28797
            . ./mdev28797.cmd <basedir> [other options if needed]
            {noformat}
            Without extra options, it runs 10 trials of an RQG test in shm and stops after the first failure of any kind.

            Reliability of the test is unclear though. On my machine it seems to fail more readily on SSD than in shm; on a lab machine, it seemed to happen more readily in shm with rr than in shm without rr or than on disk regardless rr. But statistics is insufficient to draw conclusions.
            On 10.7 I couldn't reproduce it at all in a few attempts.
            {noformat:title=10.8 62419b17}
            mysqld: /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:642: rec_t* PageBulk::getSplitRec(): Assertion `page_rec_is_user_rec(rec)' failed.
            220610 12:36:59 [ERROR] mysqld got signal 6 ;

            #1 0x000000006fc4c7f1 in __GI_abort () at abort.c:79
            #2 0x000000006fc3c3fa in __assert_fail_base (fmt=0x6fdc36c0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5568f769eecf "page_rec_is_user_rec(rec)",
                file=file@entry=0x5568f769ebb8 "/home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc", line=line@entry=642,
                function=function@entry=0x5568f76a0f70 <PageBulk::getSplitRec()::__PRETTY_FUNCTION__> "rec_t* PageBulk::getSplitRec()") at assert.c:92
            #3 0x000000006fc3c472 in __GI___assert_fail (assertion=0x5568f769eecf "page_rec_is_user_rec(rec)", file=0x5568f769ebb8 "/home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc",
                line=642, function=0x5568f76a0f70 <PageBulk::getSplitRec()::__PRETTY_FUNCTION__> "rec_t* PageBulk::getSplitRec()") at assert.c:101
            #4 0x00005568f6ef73a6 in PageBulk::getSplitRec (this=0x7fec8c1cae20) at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:642
            #5 0x00005568f6ef7be8 in BtrBulk::pageSplit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x6c271820dcd0)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:895
            #6 0x00005568f6ef7f83 in BtrBulk::pageCommit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x6c271820dcd0, insert_father=true)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:948
            #7 0x00005568f6ef7c43 in BtrBulk::pageSplit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x7fec8c0a7260)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:900
            #8 0x00005568f6ef7f83 in BtrBulk::pageCommit (this=0xd9068174980, page_bulk=0x7fec8c1cae20, next_page_bulk=0x7fec8c0a7260, insert_father=true)
                at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:948
            #9 0x00005568f6ef8631 in BtrBulk::insert (this=0xd9068174980, tuple=0x7fec8c2625f0, level=0) at /home/mariadb/split/10.8/storage/innobase/btr/btr0bulk.cc:1082
            #10 0x00005568f6de0b2a in BtrBulk::insert (this=0xd9068174980, tuple=0x7fec8c2625f0) at /home/mariadb/split/10.8/storage/innobase/include/btr0bulk.h:301
            #11 0x00005568f6e1794d in row_merge_insert_index_tuples (index=0xd90680607a0, old_table=0x55f208277b90, fd=..., block=0x0, row_buf=0x7fec8c14b080, btr_bulk=0xd9068174980,
                table_total_rows=301, pct_progress=0, pct_cost=50, crypt_block=0x0, space=154, stage=0x0, blob_file=0x0) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:3879
            #12 0x00005568f6e13ab1 in row_merge_read_clustered_index (trx=0x78c22a3ecb80, table=0x6c27182103b0, old_table=0x55f208277b90, new_table=0x55f2080bf680, online=true,
                index=0x7fec8c116b40, fts_sort_idx=0x0, psort_info=0x0, files=0x7fec8c14e7f0, key_numbers=0x7fec8c116b48, n_index=1, defaults=0x0, add_v=0x0, col_map=0x7fec8c1912d0,
                add_autoinc=18446744073709551615, sequence=..., block=0x3d305ba9d000 "", skip_pk_sort=true, tmpfd=0x6c271820f408, stage=0x7fec8c0c7230, pct_cost=50, crypt_block=0x0,
                eval_table=0x6c27182103b0, allow_not_null=false) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:2715
            #13 0x00005568f6e1a844 in row_merge_build_indexes (trx=0x78c22a3ecb80, old_table=0x55f208277b90, new_table=0x55f2080bf680, online=true, indexes=0x7fec8c116b40,
                key_numbers=0x7fec8c116b48, n_indexes=1, table=0x6c27182103b0, defaults=0x0, col_map=0x7fec8c1912d0, add_autoinc=18446744073709551615, sequence=..., skip_pk_sort=true,
                stage=0x7fec8c0c7230, add_v=0x0, eval_table=0x6c27182103b0, allow_not_null=false) at /home/mariadb/split/10.8/storage/innobase/row/row0merge.cc:4796
            #14 0x00005568f6cbbc82 in ha_innobase::inplace_alter_table (this=0xd906818d820, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0)
                at /home/mariadb/split/10.8/storage/innobase/handler/handler0alter.cc:8523
            #15 0x00005568f6646bbb in handler::ha_inplace_alter_table (this=0xd906818d820, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0) at /home/mariadb/split/10.8/sql/handler.h:4601
            #16 0x00005568f6c0879e in ha_partition::inplace_alter_table (this=0xd90681542d0, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0)
                at /home/mariadb/split/10.8/sql/ha_partition.cc:10526
            #17 0x00005568f6646bbb in handler::ha_inplace_alter_table (this=0xd90681542d0, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0) at /home/mariadb/split/10.8/sql/handler.h:4601
            #18 0x00005568f6637962 in mysql_inplace_alter_table (thd=0x7fec8c000d78, table_list=0x7fec8c013ec8, table=0xd90680cb2f8, altered_table=0x6c27182103b0, ha_alter_info=0x6c27182102f0,
                target_mdl_request=0x6c2718210b80, ddl_log_state=0x6c2718210290, trigger_param=0x6c2718210770, alter_ctx=0x6c27182116e0, partial_alter=@0x6c2718210196: false,
                start_alter_id=@0x6c27182101d0: 0, if_exists=true) at /home/mariadb/split/10.8/sql/sql_table.cc:7671
            #19 0x00005568f6640c5a in mysql_alter_table (thd=0x7fec8c000d78, new_db=0x7fec8c005820, new_name=0x7fec8c005c38, create_info=0x6c27182124f0, table_list=0x7fec8c013ec8,
                alter_info=0x6c2718212400, order_num=0, order=0x0, ignore=false, if_exists=true) at /home/mariadb/split/10.8/sql/sql_table.cc:10705
            #20 0x00005568f66f2103 in Sql_cmd_alter_table::execute (this=0x7fec8c0145b0, thd=0x7fec8c000d78) at /home/mariadb/split/10.8/sql/sql_alter.cc:547
            #21 0x00005568f6526a8c in mysql_execute_command (thd=0x7fec8c000d78, is_called_from_prepared_stmt=false) at /home/mariadb/split/10.8/sql/sql_parse.cc:5988
            #22 0x00005568f652caba in mysql_parse (thd=0x7fec8c000d78, rawbuf=0x7fec8c013cf0 "ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED", length=88,
                parser_state=0x6c2718213550) at /home/mariadb/split/10.8/sql/sql_parse.cc:8027
            ---Type <return> to continue, or q <return> to quit---
            #23 0x00005568f65191b4 in dispatch_command (command=COM_QUERY, thd=0x7fec8c000d78,
                packet=0x7fec8c00b649 "ALTER /* QNO 14785 CON_ID 10 */ TABLE `table10_innodb_int_autoinc` ROW_FORMAT=COMPRESSED", packet_length=88, blocking=true)
                at /home/mariadb/split/10.8/sql/sql_parse.cc:1894
            #24 0x00005568f6517b39 in do_command (thd=0x7fec8c000d78, blocking=true) at /home/mariadb/split/10.8/sql/sql_parse.cc:1407
            #25 0x00005568f66e6f71 in do_handle_one_connection (connect=0x73c613f67438, put_in_cache=true) at /home/mariadb/split/10.8/sql/sql_connect.cc:1418
            #26 0x00005568f66e6c0c in handle_one_connection (arg=0x73c613f67438) at /home/mariadb/split/10.8/sql/sql_connect.cc:1312
            #27 0x00007fec79a8c6db in start_thread (arg=0x6c2718214700) at pthread_create.c:463
            #28 0x000000006fd2d61f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            {noformat}

            I was reproducing it with this:
            {noformat}
            git clone https://github.com/MariaDB/randgen --branch mdev28797 rqg-mdev28797
            cd rqg-mdev28797
            . ./mdev28797.cmd <basedir> [other options if needed]
            {noformat}
            Without extra options, it runs 10 trials of an RQG test in shm and stops after the first failure of any kind.

            Reliability of the test is unclear though. On my machine it seems to fail more readily on SSD than in shm; on a lab machine, it seemed to happen more readily in shm with rr than in shm without rr or than on disk regardless rr. But statistics is insufficient to draw conclusions.
            On 10.7 I couldn't reproduce it at all in a few attempts. However, I've seen a different probably related assertion failure
            {noformat:title=10.7 fe75e5e5}
            mysqld: /data/src/10.7/storage/innobase/btr/btr0btr.cc:2790: rec_t* btr_page_split_and_insert(ulint, btr_cur_t*, rec_offs**, mem_heap_t**, const dtuple_t*, ulint, mtr_t*, dberr_t*): Assertion `*err == DB_SUCCESS' failed.
            220610 16:51:32 [ERROR] mysqld got signal 6 ;
            {noformat}
            elenst Elena Stepanova made changes -
            Attachment earth2kb.jpg [ 64193 ]
            Attachment earth5kb.jpg [ 64194 ]
            Attachment ja-4kb.txt [ 64195 ]
            elenst Elena Stepanova added a comment - - edited

            I suppose this is related to the originally reported failure:

            10.6 51ca5d51

            mariadbd: /data/src/10.6/storage/innobase/btr/btr0bulk.cc:699: void PageBulk::copyOut(rec_t*): Assertion `n > 0' failed.
            220612 21:23:51 [ERROR] mysqld got signal 6 ;
             
            #6  0x00007f04c063b40f in __assert_fail_base (fmt=0x7f04c07a4128 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x560f36424caa "n > 0", file=0x560f364248c0 "/data/src/10.6/storage/innobase/btr/btr0bulk.cc", line=699, function=<optimized out>) at assert.c:92
            #7  0x00007f04c064a662 in __GI___assert_fail (assertion=0x560f36424caa "n > 0", file=0x560f364248c0 "/data/src/10.6/storage/innobase/btr/btr0bulk.cc", line=699, function=0x560f36424cb0 "void PageBulk::copyOut(rec_t*)") at assert.c:101
            #8  0x0000560f35d41b40 in PageBulk::copyOut (this=0x7f0464058468, split_rec=0x7f04b6174082 "\200") at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:699
            #9  0x0000560f35d42095 in BtrBulk::pageSplit (this=0x7f04641f9408, page_bulk=0x7f0464058468, next_page_bulk=0x7f0464c059b8) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:897
            #10 0x0000560f35d423f3 in BtrBulk::pageCommit (this=0x7f04641f9408, page_bulk=0x7f0464058468, next_page_bulk=0x7f0464c059b8, insert_father=true) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:948
            #11 0x0000560f35d42b64 in BtrBulk::insert (this=0x7f04641f9408, tuple=0x7f0464c2c358, level=0) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:1082
            #12 0x0000560f35c25b58 in BtrBulk::insert (this=0x7f04641f9408, tuple=0x7f0464c2c358) at /data/src/10.6/storage/innobase/include/btr0bulk.h:301
            #13 0x0000560f35c5d5c7 in row_merge_insert_index_tuples (index=0x7f046405fa98, old_table=0x7f04641fcb58, fd=..., block=0x0, row_buf=0x7f046405f4f8, btr_bulk=0x7f04641f9408, table_total_rows=5, pct_progress=0, pct_cost=50, crypt_block=0x0, space=6, stage=0x0) at /data/src/10.6/storage/innobase/row/row0merge.cc:3675
            #14 0x0000560f35c59821 in row_merge_read_clustered_index (trx=0x7f04b6c60b80, table=0x7f04b59c42f0, old_table=0x7f04641fcb58, new_table=0x7f046405a8e8, online=true, index=0x7f046405a628, fts_sort_idx=0x0, psort_info=0x0, files=0x7f046420a628, key_numbers=0x7f046405a630, n_index=1, defaults=0x0, add_v=0x0, col_map=0x7f046405a6a8, add_autoinc=18446744073709551615, sequence=..., block=0x7f04b4153000 "", skip_pk_sort=true, tmpfd=0x7f04b59c3480, stage=0x7f0464043868, pct_cost=50, crypt_block=0x0, eval_table=0x7f04b59c42f0, allow_not_null=false) at /data/src/10.6/storage/innobase/row/row0merge.cc:2545
            #15 0x0000560f35c607f4 in row_merge_build_indexes (trx=0x7f04b6c60b80, old_table=0x7f04641fcb58, new_table=0x7f046405a8e8, online=true, indexes=0x7f046405a628, key_numbers=0x7f046405a630, n_indexes=1, table=0x7f04b59c42f0, defaults=0x0, col_map=0x7f046405a6a8, add_autoinc=18446744073709551615, sequence=..., skip_pk_sort=true, stage=0x7f0464043868, add_v=0x0, eval_table=0x7f04b59c42f0, allow_not_null=false) at /data/src/10.6/storage/innobase/row/row0merge.cc:4591
            #16 0x0000560f35afa1ec in ha_innobase::inplace_alter_table (this=0x7f0464238170, altered_table=0x7f04b59c42f0, ha_alter_info=0x7f04b59c4230) at /data/src/10.6/storage/innobase/handler/handler0alter.cc:8508
            #17 0x0000560f35411ea1 in handler::ha_inplace_alter_table (this=0x7f0464238170, altered_table=0x7f04b59c42f0, ha_alter_info=0x7f04b59c4230) at /data/src/10.6/sql/handler.h:4676
            #18 0x0000560f354033c1 in mysql_inplace_alter_table (thd=0x7f0464000db8, table_list=0x7f0464015690, table=0x7f0464237cc8, altered_table=0x7f04b59c42f0, ha_alter_info=0x7f04b59c4230, target_mdl_request=0x7f04b59c4b30, ddl_log_state=0x7f04b59c41d0, trigger_param=0x7f04b59c46e0, alter_ctx=0x7f04b59c5690) at /data/src/10.6/sql/sql_table.cc:7410
            #19 0x0000560f3540c1f4 in mysql_alter_table (thd=0x7f0464000db8, new_db=0x7f04640059b8, new_name=0x7f0464005dd0, create_info=0x7f04b59c64a0, table_list=0x7f0464015690, alter_info=0x7f04b59c63b0, order_num=0, order=0x0, ignore=false, if_exists=false) at /data/src/10.6/sql/sql_table.cc:10278
            #20 0x0000560f354bfcac in Sql_cmd_alter_table::execute (this=0x7f0464015d78, thd=0x7f0464000db8) at /data/src/10.6/sql/sql_alter.cc:542
            #21 0x0000560f35309a62 in mysql_execute_command (thd=0x7f0464000db8, is_called_from_prepared_stmt=false) at /data/src/10.6/sql/sql_parse.cc:5996
            #22 0x0000560f3530fab0 in mysql_parse (thd=0x7f0464000db8, rawbuf=0x7f04640155c0 "ALTER TABLE t FORCE", length=19, parser_state=0x7f04b59c7500) at /data/src/10.6/sql/sql_parse.cc:8029
            #23 0x0000560f352fc113 in dispatch_command (command=COM_QUERY, thd=0x7f0464000db8, packet=0x7f046400b879 "ALTER TABLE t FORCE", packet_length=19, blocking=true) at /data/src/10.6/sql/sql_parse.cc:1896
            #24 0x0000560f352fab0e in do_command (thd=0x7f0464000db8, blocking=true) at /data/src/10.6/sql/sql_parse.cc:1409
            #25 0x0000560f354b4c68 in do_handle_one_connection (connect=0x560f37edbad8, put_in_cache=true) at /data/src/10.6/sql/sql_connect.cc:1418
            #26 0x0000560f354b4907 in handle_one_connection (arg=0x560f37fa1628) at /data/src/10.6/sql/sql_connect.cc:1312
            #27 0x0000560f359d012c in pfs_spawn_thread (arg=0x560f37edb648) at /data/src/10.6/storage/perfschema/pfs.cc:2201
            #28 0x00007f04c0b16ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
            #29 0x00007f04c0713def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            

            The test case for this is simple, but it requires extra data files, I couldn't replace them with any obvious generations (REPEAT or HEX(REPEAT..)):

            --source include/have_innodb.inc
             
            if (`select @@secure_file_priv is not null`)
            {
              --die # The test should be run with --secure-file-priv= (empty value)
            }
             
            CREATE TABLE t (pk int, a blob, b blob, primary key (pk)) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
            INSERT INTO t VALUES  
              (1, HEX(REPEAT('a',2048)), ''),
              (2, LOAD_FILE('/tmp/ja-4kb.txt'), REPEAT('b',4096)),
              (3, LOAD_FILE('/tmp/earth2kb.jpg'), LOAD_FILE('/tmp/ja-4kb.txt')),
              (4, LOAD_FILE('/tmp/earth5kb.jpg'), ''),
              (5, LOAD_FILE('/tmp/earth5kb.jpg'), '');
            ALTER TABLE t FORCE;
             
            # Cleanup
            DROP TABLE t;
            

            The files are attached, place them into /tmp/ directory and run the test case with --mysqld=--secure-file-priv=''. <= This is important, because if LOAD_FILE doesn't find the file or doesn't want to load it due to secure-file-priv restriction, it doesn't fail, it simply returns NULL, so it will look like the failure is not reproducible.

            earth2kb.jpg earth5kb.jpg ja-4kb.txt

            Reproducible on 10.6+.

            Non-debug build fails with the same test case on a different assertion:

            10.6 51ca5d51

            2022-06-12 21:33:44 0x7fe7f1453700  InnoDB: Assertion failure in file /data/src/10.6/storage/innobase/page/page0zip.cc line 761
            InnoDB: Failing assertion: i + PAGE_HEAP_NO_USER_LOW == n_heap
             
            #6  0x000055676b6d0058 in ut_dbg_assertion_failed (expr=expr@entry=0x55676c30f328 "i + PAGE_HEAP_NO_USER_LOW == n_heap", file=file@entry=0x55676c30efa0 "/data/src/10.6/storage/innobase/page/page0zip.cc", line=line@entry=761) at /data/src/10.6/storage/innobase/ut/ut0dbg.cc:60
            #7  0x000055676b6b91b0 in page_zip_dir_encode (recs=0x7fe7acbcfe90, buf=<optimized out>, page=0x7fe7f1bf8000 "") at /data/src/10.6/storage/innobase/page/page0zip.cc:761
            #8  page_zip_compress (block=0x7fe7f16f66c0, index=0x7fe7ac1a15a0, level=<optimized out>, mtr=mtr@entry=0x7fe7ac071798) at /data/src/10.6/storage/innobase/page/page0zip.cc:1432
            #9  0x000055676be79646 in PageBulk::compress (this=0x7fe7ac071788) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:582
            #10 BtrBulk::pageCommit (this=0x7fe7ac031fb8, page_bulk=0x7fe7ac071788, next_page_bulk=0x7fe7f144d020, insert_father=<optimized out>) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:947
            #11 0x000055676be79434 in BtrBulk::pageSplit (this=0x7fe7ac031fb8, page_bulk=0x7fe7ac071788, next_page_bulk=0x7fe7ac1a41b8) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:900
            #12 0x000055676be79e48 in BtrBulk::insert (this=this@entry=0x7fe7ac031fb8, tuple=tuple@entry=0x7fe7ac1bad20, level=level@entry=0) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:1082
            #13 0x000055676be03781 in BtrBulk::insert (tuple=0x7fe7ac1bad20, this=0x7fe7ac031fb8) at /data/src/10.6/storage/innobase/include/btr0bulk.h:301
            #14 row_merge_insert_index_tuples (index=0x7fe7ac1a15a0, old_table=0x7fe7ac11a910, fd=..., block=0x0, row_buf=0x7fe7ac114590, btr_bulk=0x7fe7ac031fb8, table_total_rows=5, pct_progress=0, pct_cost=50, crypt_block=0x0, space=6, stage=0x0) at /data/src/10.6/storage/innobase/row/row0merge.cc:3675
            #15 0x000055676be09c02 in row_merge_read_clustered_index (trx=0x7fe7f2705b80, table=0x7fe7f144ee80, old_table=0x7fe7ac11a910, new_table=<optimized out>, online=true, index=0x7fe7ac037a68, fts_sort_idx=0x0, psort_info=0x0, files=0x7fe7ac104d68, key_numbers=0x7fe7ac037a70, n_index=1, defaults=0x0, add_v=0x0, col_map=0x7fe7ac037ae8, add_autoinc=18446744073709551615, sequence=..., block=0x7fe7f03df000 "", skip_pk_sort=true, tmpfd=0x7fe7f144e710, stage=0x7fe7ac038928, pct_cost=50, crypt_block=0x0, eval_table=0x7fe7f144ee80, allow_not_null=false) at /data/src/10.6/storage/innobase/row/row0merge.cc:2545
            #16 0x000055676be0abdd in row_merge_build_indexes (trx=0x7fe7f2705b80, old_table=0x7fe7ac11a910, new_table=0x7fe7ac037d20, online=true, indexes=0x7fe7ac037a68, key_numbers=0x7fe7ac037a70, n_indexes=1, table=0x7fe7f144ee80, defaults=0x0, col_map=0x7fe7ac037ae8, add_autoinc=18446744073709551615, sequence=..., skip_pk_sort=true, stage=0x7fe7ac038928, add_v=0x0, eval_table=0x7fe7f144ee80, allow_not_null=false) at /data/src/10.6/storage/innobase/row/row0merge.cc:4591
            #17 0x000055676bd7cbff in ha_innobase::inplace_alter_table (this=0x7fe7ac0ea100, altered_table=0x7fe7f144ee80, ha_alter_info=0x7fe7f144edc0) at /data/src/10.6/storage/innobase/handler/handler0alter.cc:8508
            #18 0x000055676b8c3eb9 in handler::ha_inplace_alter_table (ha_alter_info=0x7fe7f144edc0, altered_table=0x7fe7f144ee80, this=<optimized out>) at /data/src/10.6/sql/handler.h:4676
            #19 mysql_inplace_alter_table (target_mdl_request=0x7fe7f144f6c0, alter_ctx=0x7fe7f1450810, trigger_param=0x7fe7f144f270, ddl_log_state=0x7fe7f144ed60, ha_alter_info=0x7fe7f144edc0, altered_table=0x7fe7f144ee80, table=0x7fe7ac11b498, table_list=0x7fe7ac010a10, thd=0x7fe7ac000c58) at /data/src/10.6/sql/sql_table.cc:7410
            #20 mysql_alter_table (thd=thd@entry=0x7fe7ac000c58, new_db=new_db@entry=0x7fe7ac005698, new_name=new_name@entry=0x7fe7ac005ab0, create_info=create_info@entry=0x7fe7f1451610, table_list=<optimized out>, table_list@entry=0x7fe7ac010a10, alter_info=alter_info@entry=0x7fe7f1451520, order_num=0, order=0x0, ignore=false, if_exists=false) at /data/src/10.6/sql/sql_table.cc:10278
            #21 0x000055676b92d707 in Sql_cmd_alter_table::execute (this=<optimized out>, thd=0x7fe7ac000c58) at /data/src/10.6/sql/sql_alter.cc:542
            #22 0x000055676b81850e in mysql_execute_command (thd=0x7fe7ac000c58, is_called_from_prepared_stmt=<optimized out>) at /data/src/10.6/sql/sql_parse.cc:5996
            #23 0x000055676b8196e7 in mysql_parse (thd=0x7fe7ac000c58, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at /data/src/10.6/sql/sql_parse.cc:8029
            #24 0x000055676b81bfad in dispatch_command (command=COM_QUERY, thd=0x7fe7ac000c58, packet=<optimized out>, packet_length=<optimized out>, blocking=<optimized out>) at /data/src/10.6/sql/sql_class.h:234
            #25 0x000055676b81dc62 in do_command (thd=0x7fe7ac000c58, blocking=blocking@entry=true) at /data/src/10.6/sql/sql_parse.cc:1409
            #26 0x000055676b928a9f in do_handle_one_connection (connect=<optimized out>, put_in_cache=true) at /data/src/10.6/sql/sql_connect.cc:1418
            #27 0x000055676b928ded in handle_one_connection (arg=arg@entry=0x55676f61f638) at /data/src/10.6/sql/sql_connect.cc:1312
            #28 0x000055676bcaa132 in pfs_spawn_thread (arg=0x55676f5daee8) at /data/src/10.6/storage/perfschema/pfs.cc:2201
            #29 0x00007fe7f858fea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
            #30 0x00007fe7f81a6def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            

            elenst Elena Stepanova added a comment - - edited I suppose this is related to the originally reported failure: 10.6 51ca5d51 mariadbd: /data/src/10.6/storage/innobase/btr/btr0bulk.cc:699: void PageBulk::copyOut(rec_t*): Assertion `n > 0' failed. 220612 21:23:51 [ERROR] mysqld got signal 6 ;   #6 0x00007f04c063b40f in __assert_fail_base (fmt=0x7f04c07a4128 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x560f36424caa "n > 0", file=0x560f364248c0 "/data/src/10.6/storage/innobase/btr/btr0bulk.cc", line=699, function=<optimized out>) at assert.c:92 #7 0x00007f04c064a662 in __GI___assert_fail (assertion=0x560f36424caa "n > 0", file=0x560f364248c0 "/data/src/10.6/storage/innobase/btr/btr0bulk.cc", line=699, function=0x560f36424cb0 "void PageBulk::copyOut(rec_t*)") at assert.c:101 #8 0x0000560f35d41b40 in PageBulk::copyOut (this=0x7f0464058468, split_rec=0x7f04b6174082 "\200") at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:699 #9 0x0000560f35d42095 in BtrBulk::pageSplit (this=0x7f04641f9408, page_bulk=0x7f0464058468, next_page_bulk=0x7f0464c059b8) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:897 #10 0x0000560f35d423f3 in BtrBulk::pageCommit (this=0x7f04641f9408, page_bulk=0x7f0464058468, next_page_bulk=0x7f0464c059b8, insert_father=true) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:948 #11 0x0000560f35d42b64 in BtrBulk::insert (this=0x7f04641f9408, tuple=0x7f0464c2c358, level=0) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:1082 #12 0x0000560f35c25b58 in BtrBulk::insert (this=0x7f04641f9408, tuple=0x7f0464c2c358) at /data/src/10.6/storage/innobase/include/btr0bulk.h:301 #13 0x0000560f35c5d5c7 in row_merge_insert_index_tuples (index=0x7f046405fa98, old_table=0x7f04641fcb58, fd=..., block=0x0, row_buf=0x7f046405f4f8, btr_bulk=0x7f04641f9408, table_total_rows=5, pct_progress=0, pct_cost=50, crypt_block=0x0, space=6, stage=0x0) at /data/src/10.6/storage/innobase/row/row0merge.cc:3675 #14 0x0000560f35c59821 in row_merge_read_clustered_index (trx=0x7f04b6c60b80, table=0x7f04b59c42f0, old_table=0x7f04641fcb58, new_table=0x7f046405a8e8, online=true, index=0x7f046405a628, fts_sort_idx=0x0, psort_info=0x0, files=0x7f046420a628, key_numbers=0x7f046405a630, n_index=1, defaults=0x0, add_v=0x0, col_map=0x7f046405a6a8, add_autoinc=18446744073709551615, sequence=..., block=0x7f04b4153000 "", skip_pk_sort=true, tmpfd=0x7f04b59c3480, stage=0x7f0464043868, pct_cost=50, crypt_block=0x0, eval_table=0x7f04b59c42f0, allow_not_null=false) at /data/src/10.6/storage/innobase/row/row0merge.cc:2545 #15 0x0000560f35c607f4 in row_merge_build_indexes (trx=0x7f04b6c60b80, old_table=0x7f04641fcb58, new_table=0x7f046405a8e8, online=true, indexes=0x7f046405a628, key_numbers=0x7f046405a630, n_indexes=1, table=0x7f04b59c42f0, defaults=0x0, col_map=0x7f046405a6a8, add_autoinc=18446744073709551615, sequence=..., skip_pk_sort=true, stage=0x7f0464043868, add_v=0x0, eval_table=0x7f04b59c42f0, allow_not_null=false) at /data/src/10.6/storage/innobase/row/row0merge.cc:4591 #16 0x0000560f35afa1ec in ha_innobase::inplace_alter_table (this=0x7f0464238170, altered_table=0x7f04b59c42f0, ha_alter_info=0x7f04b59c4230) at /data/src/10.6/storage/innobase/handler/handler0alter.cc:8508 #17 0x0000560f35411ea1 in handler::ha_inplace_alter_table (this=0x7f0464238170, altered_table=0x7f04b59c42f0, ha_alter_info=0x7f04b59c4230) at /data/src/10.6/sql/handler.h:4676 #18 0x0000560f354033c1 in mysql_inplace_alter_table (thd=0x7f0464000db8, table_list=0x7f0464015690, table=0x7f0464237cc8, altered_table=0x7f04b59c42f0, ha_alter_info=0x7f04b59c4230, target_mdl_request=0x7f04b59c4b30, ddl_log_state=0x7f04b59c41d0, trigger_param=0x7f04b59c46e0, alter_ctx=0x7f04b59c5690) at /data/src/10.6/sql/sql_table.cc:7410 #19 0x0000560f3540c1f4 in mysql_alter_table (thd=0x7f0464000db8, new_db=0x7f04640059b8, new_name=0x7f0464005dd0, create_info=0x7f04b59c64a0, table_list=0x7f0464015690, alter_info=0x7f04b59c63b0, order_num=0, order=0x0, ignore=false, if_exists=false) at /data/src/10.6/sql/sql_table.cc:10278 #20 0x0000560f354bfcac in Sql_cmd_alter_table::execute (this=0x7f0464015d78, thd=0x7f0464000db8) at /data/src/10.6/sql/sql_alter.cc:542 #21 0x0000560f35309a62 in mysql_execute_command (thd=0x7f0464000db8, is_called_from_prepared_stmt=false) at /data/src/10.6/sql/sql_parse.cc:5996 #22 0x0000560f3530fab0 in mysql_parse (thd=0x7f0464000db8, rawbuf=0x7f04640155c0 "ALTER TABLE t FORCE", length=19, parser_state=0x7f04b59c7500) at /data/src/10.6/sql/sql_parse.cc:8029 #23 0x0000560f352fc113 in dispatch_command (command=COM_QUERY, thd=0x7f0464000db8, packet=0x7f046400b879 "ALTER TABLE t FORCE", packet_length=19, blocking=true) at /data/src/10.6/sql/sql_parse.cc:1896 #24 0x0000560f352fab0e in do_command (thd=0x7f0464000db8, blocking=true) at /data/src/10.6/sql/sql_parse.cc:1409 #25 0x0000560f354b4c68 in do_handle_one_connection (connect=0x560f37edbad8, put_in_cache=true) at /data/src/10.6/sql/sql_connect.cc:1418 #26 0x0000560f354b4907 in handle_one_connection (arg=0x560f37fa1628) at /data/src/10.6/sql/sql_connect.cc:1312 #27 0x0000560f359d012c in pfs_spawn_thread (arg=0x560f37edb648) at /data/src/10.6/storage/perfschema/pfs.cc:2201 #28 0x00007f04c0b16ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477 #29 0x00007f04c0713def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 The test case for this is simple, but it requires extra data files, I couldn't replace them with any obvious generations (REPEAT or HEX(REPEAT..)): --source include/have_innodb.inc   if (` select @@secure_file_priv is not null `) { --die # The test should be run with --secure-file-priv= (empty value) }   CREATE TABLE t (pk int , a blob, b blob, primary key (pk)) ENGINE=InnoDB ROW_FORMAT=COMPRESSED; INSERT INTO t VALUES (1, HEX(REPEAT( 'a' ,2048)), '' ), (2, LOAD_FILE( '/tmp/ja-4kb.txt' ), REPEAT( 'b' ,4096)), (3, LOAD_FILE( '/tmp/earth2kb.jpg' ), LOAD_FILE( '/tmp/ja-4kb.txt' )), (4, LOAD_FILE( '/tmp/earth5kb.jpg' ), '' ), (5, LOAD_FILE( '/tmp/earth5kb.jpg' ), '' ); ALTER TABLE t FORCE ;   # Cleanup DROP TABLE t; The files are attached, place them into /tmp/ directory and run the test case with --mysqld=--secure-file-priv='' . <= This is important , because if LOAD_FILE doesn't find the file or doesn't want to load it due to secure-file-priv restriction, it doesn't fail, it simply returns NULL, so it will look like the failure is not reproducible. earth2kb.jpg earth5kb.jpg ja-4kb.txt Reproducible on 10.6+. Non-debug build fails with the same test case on a different assertion: 10.6 51ca5d51 2022-06-12 21:33:44 0x7fe7f1453700 InnoDB: Assertion failure in file /data/src/10.6/storage/innobase/page/page0zip.cc line 761 InnoDB: Failing assertion: i + PAGE_HEAP_NO_USER_LOW == n_heap   #6 0x000055676b6d0058 in ut_dbg_assertion_failed (expr=expr@entry=0x55676c30f328 "i + PAGE_HEAP_NO_USER_LOW == n_heap", file=file@entry=0x55676c30efa0 "/data/src/10.6/storage/innobase/page/page0zip.cc", line=line@entry=761) at /data/src/10.6/storage/innobase/ut/ut0dbg.cc:60 #7 0x000055676b6b91b0 in page_zip_dir_encode (recs=0x7fe7acbcfe90, buf=<optimized out>, page=0x7fe7f1bf8000 "") at /data/src/10.6/storage/innobase/page/page0zip.cc:761 #8 page_zip_compress (block=0x7fe7f16f66c0, index=0x7fe7ac1a15a0, level=<optimized out>, mtr=mtr@entry=0x7fe7ac071798) at /data/src/10.6/storage/innobase/page/page0zip.cc:1432 #9 0x000055676be79646 in PageBulk::compress (this=0x7fe7ac071788) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:582 #10 BtrBulk::pageCommit (this=0x7fe7ac031fb8, page_bulk=0x7fe7ac071788, next_page_bulk=0x7fe7f144d020, insert_father=<optimized out>) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:947 #11 0x000055676be79434 in BtrBulk::pageSplit (this=0x7fe7ac031fb8, page_bulk=0x7fe7ac071788, next_page_bulk=0x7fe7ac1a41b8) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:900 #12 0x000055676be79e48 in BtrBulk::insert (this=this@entry=0x7fe7ac031fb8, tuple=tuple@entry=0x7fe7ac1bad20, level=level@entry=0) at /data/src/10.6/storage/innobase/btr/btr0bulk.cc:1082 #13 0x000055676be03781 in BtrBulk::insert (tuple=0x7fe7ac1bad20, this=0x7fe7ac031fb8) at /data/src/10.6/storage/innobase/include/btr0bulk.h:301 #14 row_merge_insert_index_tuples (index=0x7fe7ac1a15a0, old_table=0x7fe7ac11a910, fd=..., block=0x0, row_buf=0x7fe7ac114590, btr_bulk=0x7fe7ac031fb8, table_total_rows=5, pct_progress=0, pct_cost=50, crypt_block=0x0, space=6, stage=0x0) at /data/src/10.6/storage/innobase/row/row0merge.cc:3675 #15 0x000055676be09c02 in row_merge_read_clustered_index (trx=0x7fe7f2705b80, table=0x7fe7f144ee80, old_table=0x7fe7ac11a910, new_table=<optimized out>, online=true, index=0x7fe7ac037a68, fts_sort_idx=0x0, psort_info=0x0, files=0x7fe7ac104d68, key_numbers=0x7fe7ac037a70, n_index=1, defaults=0x0, add_v=0x0, col_map=0x7fe7ac037ae8, add_autoinc=18446744073709551615, sequence=..., block=0x7fe7f03df000 "", skip_pk_sort=true, tmpfd=0x7fe7f144e710, stage=0x7fe7ac038928, pct_cost=50, crypt_block=0x0, eval_table=0x7fe7f144ee80, allow_not_null=false) at /data/src/10.6/storage/innobase/row/row0merge.cc:2545 #16 0x000055676be0abdd in row_merge_build_indexes (trx=0x7fe7f2705b80, old_table=0x7fe7ac11a910, new_table=0x7fe7ac037d20, online=true, indexes=0x7fe7ac037a68, key_numbers=0x7fe7ac037a70, n_indexes=1, table=0x7fe7f144ee80, defaults=0x0, col_map=0x7fe7ac037ae8, add_autoinc=18446744073709551615, sequence=..., skip_pk_sort=true, stage=0x7fe7ac038928, add_v=0x0, eval_table=0x7fe7f144ee80, allow_not_null=false) at /data/src/10.6/storage/innobase/row/row0merge.cc:4591 #17 0x000055676bd7cbff in ha_innobase::inplace_alter_table (this=0x7fe7ac0ea100, altered_table=0x7fe7f144ee80, ha_alter_info=0x7fe7f144edc0) at /data/src/10.6/storage/innobase/handler/handler0alter.cc:8508 #18 0x000055676b8c3eb9 in handler::ha_inplace_alter_table (ha_alter_info=0x7fe7f144edc0, altered_table=0x7fe7f144ee80, this=<optimized out>) at /data/src/10.6/sql/handler.h:4676 #19 mysql_inplace_alter_table (target_mdl_request=0x7fe7f144f6c0, alter_ctx=0x7fe7f1450810, trigger_param=0x7fe7f144f270, ddl_log_state=0x7fe7f144ed60, ha_alter_info=0x7fe7f144edc0, altered_table=0x7fe7f144ee80, table=0x7fe7ac11b498, table_list=0x7fe7ac010a10, thd=0x7fe7ac000c58) at /data/src/10.6/sql/sql_table.cc:7410 #20 mysql_alter_table (thd=thd@entry=0x7fe7ac000c58, new_db=new_db@entry=0x7fe7ac005698, new_name=new_name@entry=0x7fe7ac005ab0, create_info=create_info@entry=0x7fe7f1451610, table_list=<optimized out>, table_list@entry=0x7fe7ac010a10, alter_info=alter_info@entry=0x7fe7f1451520, order_num=0, order=0x0, ignore=false, if_exists=false) at /data/src/10.6/sql/sql_table.cc:10278 #21 0x000055676b92d707 in Sql_cmd_alter_table::execute (this=<optimized out>, thd=0x7fe7ac000c58) at /data/src/10.6/sql/sql_alter.cc:542 #22 0x000055676b81850e in mysql_execute_command (thd=0x7fe7ac000c58, is_called_from_prepared_stmt=<optimized out>) at /data/src/10.6/sql/sql_parse.cc:5996 #23 0x000055676b8196e7 in mysql_parse (thd=0x7fe7ac000c58, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at /data/src/10.6/sql/sql_parse.cc:8029 #24 0x000055676b81bfad in dispatch_command (command=COM_QUERY, thd=0x7fe7ac000c58, packet=<optimized out>, packet_length=<optimized out>, blocking=<optimized out>) at /data/src/10.6/sql/sql_class.h:234 #25 0x000055676b81dc62 in do_command (thd=0x7fe7ac000c58, blocking=blocking@entry=true) at /data/src/10.6/sql/sql_parse.cc:1409 #26 0x000055676b928a9f in do_handle_one_connection (connect=<optimized out>, put_in_cache=true) at /data/src/10.6/sql/sql_connect.cc:1418 #27 0x000055676b928ded in handle_one_connection (arg=arg@entry=0x55676f61f638) at /data/src/10.6/sql/sql_connect.cc:1312 #28 0x000055676bcaa132 in pfs_spawn_thread (arg=0x55676f5daee8) at /data/src/10.6/storage/perfschema/pfs.cc:2201 #29 0x00007fe7f858fea7 in start_thread (arg=<optimized out>) at pthread_create.c:477 #30 0x00007fe7f81a6def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            alice Alice Sherepa made changes -
            Status Open [ 1 ] Confirmed [ 10101 ]

            Raising the priority because there is now MDEV-29589 with the same assertion failure as in the above comment, reported by a user.

            elenst Elena Stepanova added a comment - Raising the priority because there is now MDEV-29589 with the same assertion failure as in the above comment, reported by a user.
            elenst Elena Stepanova made changes -
            elenst Elena Stepanova made changes -
            Priority Major [ 3 ] Critical [ 2 ]

            The record heap number overflow may have been fixed in MDEV-29742.

            marko Marko Mäkelä added a comment - The record heap number overflow may have been fixed in MDEV-29742 .

            Problem is caused because PageBulk::PageSplit() chooses the first record to be split record. It leads to an empty left side page.
            In debug build, CopyOut() fails with n> 0 that means at least one record should present in left page. In release build,
            while doing pageCommit(), we populate the dense page directory and it iterates through the empty page. This leads to
            failure for the assert ut_a(i + PAGE_HEAP_NO_USER_LOW == n_heap);

            This is a regression of MDEV-28457.

            thiru Thirunarayanan Balathandayuthapani added a comment - Problem is caused because PageBulk::PageSplit() chooses the first record to be split record. It leads to an empty left side page. In debug build, CopyOut() fails with n> 0 that means at least one record should present in left page. In release build, while doing pageCommit(), we populate the dense page directory and it iterates through the empty page. This leads to failure for the assert ut_a(i + PAGE_HEAP_NO_USER_LOW == n_heap); This is a regression of MDEV-28457 .
            thiru Thirunarayanan Balathandayuthapani made changes -
            Affects Version/s 10.9.2 [ 27115 ]
            Affects Version/s 10.8.4 [ 27503 ]
            Affects Version/s 10.7.5 [ 27505 ]
            Affects Version/s 10.6.9 [ 27507 ]
            Affects Version/s 10.2 [ 14601 ]
            Affects Version/s 10.3 [ 22126 ]
            Affects Version/s 10.4 [ 22408 ]
            Affects Version/s 10.5 [ 23123 ]
            Affects Version/s 10.6 [ 24028 ]
            Affects Version/s 10.7 [ 24805 ]
            Affects Version/s 10.8 [ 26121 ]
            Affects Version/s 10.9 [ 26905 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.4 [ 22408 ]
            Fix Version/s 10.5 [ 23123 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            thiru Thirunarayanan Balathandayuthapani made changes -
            Status Confirmed [ 10101 ] In Progress [ 3 ]

            Patch is in bb-10.6-MDEV-29518

            thiru Thirunarayanan Balathandayuthapani added a comment - Patch is in bb-10.6- MDEV-29518
            thiru Thirunarayanan Balathandayuthapani made changes -
            Assignee Thirunarayanan Balathandayuthapani [ thiru ] Marko Mäkelä [ marko ]
            Status In Progress [ 3 ] In Review [ 10002 ]

            Thank you. I see that you also removed a couple unused functions.

            marko Marko Mäkelä added a comment - Thank you. I see that you also removed a couple unused functions.
            marko Marko Mäkelä made changes -
            Assignee Marko Mäkelä [ marko ] Thirunarayanan Balathandayuthapani [ thiru ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            Affects Version/s 10.9.4 [ 28444 ]
            Affects Version/s 10.8.6 [ 28443 ]
            Affects Version/s 10.7.7 [ 28442 ]
            Affects Version/s 10.6.11 [ 28441 ]
            Affects Version/s 10.9.3 [ 28409 ]
            Affects Version/s 10.8.5 [ 28308 ]
            Affects Version/s 10.7.6 [ 28408 ]
            Affects Version/s 10.6.10 [ 28407 ]
            Affects Version/s 10.10.1 [ 27913 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Fix Version/s 10.10.2 [ 28410 ]
            Fix Version/s 10.11.1 [ 28454 ]
            Fix Version/s 10.6.12 [ 28513 ]
            Fix Version/s 10.7.8 [ 28515 ]
            Fix Version/s 10.8.7 [ 28517 ]
            Fix Version/s 10.9.5 [ 28519 ]
            Fix Version/s 10.6 [ 24028 ]
            Fix Version/s 10.7 [ 24805 ]
            Fix Version/s 10.8 [ 26121 ]
            Fix Version/s 10.9 [ 26905 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Labels rr-profile upstream rr-profile
            thiru Thirunarayanan Balathandayuthapani made changes -

            People

              thiru Thirunarayanan Balathandayuthapani
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              5 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.