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

fsp_free_page() fails to move the extent from FSP_FREE_FRAG to FSP_FREE list

    XMLWordPrintable

Details

    Description

      InnoDB should set the XDES_FREE_BIT of the page before checking whether the
      current extent is free.

              if (!xdes_get_n_used(descr)) {
                      /* The extent has become free: move it to another list */
                      err = flst_remove(header, FSP_HEADER_OFFSET + FSP_FREE_FRAG,
                                        xdes, xoffset, mtr);
                      if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
                              return err;
                      }
                      err = fsp_free_extent(space, offset, mtr);
                      if (UNIV_UNLIKELY(err != DB_SUCCESS)) {
                              return err;
                      }
              }
       
              mtr->free(*space, static_cast<uint32_t>(offset));
              xdes_set_free<true>(*xdes, descr, offset % FSP_EXTENT_SIZE, mtr);
      

      This issue was caused in 10.6 by the following patch:

      commit 0b47c126e31cddda1e94588799599e138400bcf8
      Author: Marko Mäkelä <marko.makela@mariadb.com>
      Date:   Mon Jun 6 14:03:22 2022 +0300
       
          MDEV-13542: Crashing on corrupted page is unhelpful
      

      Attachments

        Issue Links

          Activity

            People

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