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

Assertion failure on REPLACE on ROW_FORMAT=COMPRESSED table

    XMLWordPrintable

Details

    Description

      The test case is attached. It only contains 3 essential statements – CREATE, INSERT and REPLACE – but INSERT and REPLACE are quite big. Possibly it can be reduced when the problem is known. Also, mind the --sleep at the end of the test case, it should be replaced with a decent way to wait for the purge.

      The table definition (also a part of the test case) is this:

      CREATE TABLE t (
        c08 TEXT DEFAULT '',
        c04 TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
        c10 BIGINT COMMENT 'Y',
        c03 VARCHAR(1024) NOT NULL DEFAULT '',
        c07 DATE,
        c02 CHAR(3) NOT NULL DEFAULT '',
        c06 DOUBLE(16,8) COMMENT 'Percentage',
        c09 BIGINT COMMENT 'X',
        id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
        c05 LONGBLOB NOT NULL DEFAULT '',
        c01 INT ZEROFILL NOT NULL DEFAULT 0,
        UNIQUE idx1 (c01,c02),
        PRIMARY KEY (id)
      ) ENGINE=InnoDB row_format=compressed key_block_size=4;
      

      The failure started happening on 10.4 after this commit in 10.4.29

      commit ff3d4395d808b6421d2e0714e10d48c7aa2f3c3a
      Author: Marko Mäkelä
      Date:   Wed Mar 22 14:31:00 2023 +0200
       
          MDEV-30882 Crash on ROLLBACK in a ROW_FORMAT=COMPRESSED table
      

      However it is not reproducible with the provided test case on higher versions, so I'm not sure whether it's even worth fixing. Feel free to close if it isn't.

      10.4 f5dceafd

      mysqld: /data/src/10.4/storage/innobase/row/row0purge.cc:141: bool row_purge_remove_clust_if_poss_low(purge_node_t*, ulint): Assertion `rec_get_deleted_flag(rec, rec_offs_comp(offsets))' failed.
      230628 22:12:38 [ERROR] mysqld got signal 6 ;
       
      #9  0x00007f22fa853df2 in __GI___assert_fail (assertion=0x55bf452fc3c0 "rec_get_deleted_flag(rec, rec_offs_comp(offsets))", file=0x55bf452fc1c0 "/data/src/10.4/storage/innobase/row/row0purge.cc", line=141, function=0x55bf452fc360 "bool row_purge_remove_clust_if_poss_low(purge_node_t*, ulint)") at ./assert/assert.c:101
      #10 0x000055bf44086004 in row_purge_remove_clust_if_poss_low (node=0x61a000001908, mode=2) at /data/src/10.4/storage/innobase/row/row0purge.cc:141
      #11 0x000055bf44086577 in row_purge_remove_clust_if_poss (node=0x61a000001908) at /data/src/10.4/storage/innobase/row/row0purge.cc:198
      #12 0x000055bf44089449 in row_purge_del_mark (node=0x61a000001908) at /data/src/10.4/storage/innobase/row/row0purge.cc:788
      #13 0x000055bf4408e61a in row_purge_record_func (node=0x61a000001908, undo_rec=0x6250001723b0 "", thr=0x616000006ad0, updated_extern=false) at /data/src/10.4/storage/innobase/row/row0purge.cc:1332
      #14 0x000055bf4408ec89 in row_purge (node=0x61a000001908, undo_rec=0x6250001723b0 "", thr=0x616000006ad0) at /data/src/10.4/storage/innobase/row/row0purge.cc:1398
      #15 0x000055bf4408f2b5 in row_purge_step (thr=0x616000006ad0) at /data/src/10.4/storage/innobase/row/row0purge.cc:1476
      #16 0x000055bf43f5ba25 in que_thr_step (thr=0x616000006ad0) at /data/src/10.4/storage/innobase/que/que0que.cc:966
      #17 0x000055bf43f5be8c in que_run_threads_low (thr=0x616000006ad0) at /data/src/10.4/storage/innobase/que/que0que.cc:1028
      #18 0x000055bf43f5c2e9 in que_run_threads (thr=0x616000006ad0) at /data/src/10.4/storage/innobase/que/que0que.cc:1068
      #19 0x000055bf4411b810 in srv_task_execute (slot=0x55bf460b8d00 <srv_sys+832>) at /data/src/10.4/storage/innobase/srv/srv0srv.cc:2432
      #20 0x000055bf4411bc1a in srv_worker_thread (arg=0x0) at /data/src/10.4/storage/innobase/srv/srv0srv.cc:2487
      #21 0x00007f22fa8a7fd4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #22 0x00007f22fa9285bc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      Attachments

        1. r8.test
          73 kB
          Elena Stepanova

        Issue Links

          Activity

            People

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