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

Add page id matching check in innochecksum tool

Details

    Description

      Add the condition in InnoChecksum tool to check whether page number stored in the disk
      matches with in-memory page number we count during tablespace read. This could
      catch the write corruption caused by InnoDB.

      Attachments

        Issue Links

          Activity

            thiru Thirunarayanan Balathandayuthapani created issue -
            thiru Thirunarayanan Balathandayuthapani made changes -
            Field Original Value New Value
            Fix Version/s 10.2 [ 14601 ]
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.4 [ 22408 ]
            Fix Version/s 10.5 [ 23123 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Assignee Thirunarayanan Balathandayuthapani [ thiru ] Marko Mäkelä [ marko ]
            Status In Progress [ 3 ] In Review [ 10002 ]

            I believe that is_page_corrupted() in innochecksum() should be refined and tested a little more:

            1. It should check that all tablespace ID on the nonzero pages of a data file are the same.
            2. Test with a multi-file system tablespace. Other than the first files could start with all-zero pages, so we would seem to need the following kind of logic:
            • Read the tablespace ID and page number from the first not-all-zero page. (We may have to assume innodb_page_size=16k in this case.)
            • For subsequent not-all-zero pages, the tablespace ID must match, and the page number must be consistent.

            OK to push after these changes.

            marko Marko Mäkelä added a comment - I believe that is_page_corrupted() in innochecksum() should be refined and tested a little more: It should check that all tablespace ID on the nonzero pages of a data file are the same. Test with a multi-file system tablespace. Other than the first files could start with all-zero pages, so we would seem to need the following kind of logic: Read the tablespace ID and page number from the first not-all-zero page. (We may have to assume innodb_page_size=16k in this case.) For subsequent not-all-zero pages, the tablespace ID must match, and the page number must be consistent. OK to push after these changes.
            marko Marko Mäkelä made changes -
            Assignee Marko Mäkelä [ marko ] Thirunarayanan Balathandayuthapani [ thiru ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            thiru Thirunarayanan Balathandayuthapani made changes -
            Fix Version/s 10.2.26 [ 23409 ]
            Fix Version/s 10.3.17 [ 23411 ]
            Fix Version/s 10.5.0 [ 23709 ]
            Fix Version/s 10.4.7 [ 23720 ]
            Fix Version/s 10.2 [ 14601 ]
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.4 [ 22408 ]
            Fix Version/s 10.5 [ 23123 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 97772 ] MariaDB v4 [ 156397 ]
            marko Marko Mäkelä made changes -
            mariadb-jira-automation Jira Automation (IT) made changes -
            Zendesk Related Tickets 132703
            marko Marko Mäkelä made changes -

            People

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