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

Assertion failure in page_rec_get_next_low() during innodb_gis.rtree_compress

Details

    Description

      A debug assertion that was added in order to catch corruption that was reported in MDEV-17983 turns out to be bogus. In the test innodb_gis.rtree_compress,4k, the function is sometimes being invoked by purge for a spatial index root page that is not a leaf page (PAGE_LEVEL is 1). The assertion should be relaxed as follows:

      diff --git a/storage/innobase/include/page0page.ic b/storage/innobase/include/page0page.ic
      index 6369932db1b..98b518187b5 100644
      --- a/storage/innobase/include/page0page.ic
      +++ b/storage/innobase/include/page0page.ic
      @@ -660,6 +660,7 @@ page_rec_get_next_low(
       	}
       
       	ut_ad(page_rec_is_infimum(rec)
      +	      || (!page_is_leaf(page) && !page_has_prev(page))
       	      || !(rec_get_info_bits(page + offs, comp)
       		   & REC_INFO_MIN_REC_FLAG));
       
      

      That is, if the page is a leftmost non-leaf page, it may carry a record where the flag is set.

      I observed the failure on 10.5, but the assertion was introduced in 10.2.

      Attachments

        Issue Links

          Activity

            There are no comments yet on this issue.

            People

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