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

Innochecksum misinterprets freed undo pages

Details

    Description

      Innochecksum wrongly reports the freed undo log as exisitng undo log pages. This gives wrong sense about undo log pages
      are not being freed. To fix this issue, we introduce a new command line option

      innochecksum --skip-freed-pages
      

      or short option -r which makes innochecksum consult extent descriptor page and skip further analysis of pages that are marked as freed.

      Attachments

        Activity

          thiru Thirunarayanan Balathandayuthapani created issue -
          thiru Thirunarayanan Balathandayuthapani made changes -
          Field Original Value New Value
          Description Innochecksum wrongly reports the freed undo log as exisitng undo log pages. This gives wrong sense about undo log pages are not being freed. To fix this issue, innochecksum
          should consult extent descriptor page before assuming the page is undo log page or freed one.

          Innochecksum wrongly reports the freed undo log as exisitng undo log pages. This gives wrong sense about undo log pages
          are not being freed. To fix this issue, innochecksum should consult extent descriptor page before
          assuming the page is undo log page or freed one.

          thiru Thirunarayanan Balathandayuthapani made changes -
          Status Open [ 1 ] Confirmed [ 10101 ]
          thiru Thirunarayanan Balathandayuthapani made changes -
          Assignee Thirunarayanan Balathandayuthapani [ thiru ] Marko Mäkelä [ marko ]
          Status Confirmed [ 10101 ] In Review [ 10002 ]

          Because we can’t trust the contents of FIL_PAGE_TYPE in old InnoDB system tablespaces, I think that this logic needs to be enabled for all pages, enabled by some command line option of innochecksum, which instructs it to not report page statistics for pages that have been marked as freed.

          I would also suggest another option for validating the page number and tablespace ID inside those data pages that are not filled with NUL bytes, unless such logic already exists.

          marko Marko Mäkelä added a comment - Because we can’t trust the contents of FIL_PAGE_TYPE in old InnoDB system tablespaces, I think that this logic needs to be enabled for all pages, enabled by some command line option of innochecksum , which instructs it to not report page statistics for pages that have been marked as freed. I would also suggest another option for validating the page number and tablespace ID inside those data pages that are not filled with NUL bytes, unless such logic already exists.
          marko Marko Mäkelä made changes -
          Assignee Marko Mäkelä [ marko ] Thirunarayanan Balathandayuthapani [ thiru ]
          Status In Review [ 10002 ] Stalled [ 10000 ]
          julien.fritsch Julien Fritsch made changes -
          Fix Version/s 11.2(EOL) [ 28603 ]
          thiru Thirunarayanan Balathandayuthapani made changes -
          issue.field.resolutiondate 2024-11-27 08:01:33.0 2024-11-27 08:01:33.282
          thiru Thirunarayanan Balathandayuthapani made changes -
          Fix Version/s 10.6.21 [ 29953 ]
          Fix Version/s 10.5 [ 23123 ]
          Fix Version/s 10.6 [ 24028 ]
          Fix Version/s 10.11 [ 27614 ]
          Fix Version/s 11.4 [ 29301 ]
          Resolution Fixed [ 1 ]
          Status Stalled [ 10000 ] Closed [ 6 ]
          JIraAutomate JiraAutomate made changes -
          Fix Version/s 10.11.11 [ 29954 ]
          Fix Version/s 11.4.5 [ 29956 ]
          Fix Version/s 11.7.2 [ 29914 ]
          marko Marko Mäkelä made changes -
          ralf.gebhardt Ralf Gebhardt made changes -
          marko Marko Mäkelä made changes -
          Description Innochecksum wrongly reports the freed undo log as exisitng undo log pages. This gives wrong sense about undo log pages
          are not being freed. To fix this issue, innochecksum should consult extent descriptor page before
          assuming the page is undo log page or freed one.

          Innochecksum wrongly reports the freed undo log as exisitng undo log pages. This gives wrong sense about undo log pages
          are not being freed. To fix this issue, we introduce a new command line option
          {code:sh}
          innochecksum --skip-freed-pages
          {code}
          or short option {{-r}} which makes {{innochecksum}} consult extent descriptor page and skip further analysis of pages that are marked as freed.

          People

            thiru Thirunarayanan Balathandayuthapani
            thiru Thirunarayanan Balathandayuthapani
            Votes:
            1 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.