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

innodb.log_data_file_size failed in buildbot with InnoDB: Database page corruption

Details

    Description

      http://buildbot.askmonty.org/buildbot/builders/winx64-debug/builds/3657/steps/test/logs/stdio

      innodb.innodb-alter-debug 'innodb_plugin' w2 [ pass ]    965
      innodb.log_data_file_size 'xtradb'       w1 [ fail ]  Found warnings/errors in server log file!
              Test ended at 2017-05-05 18:40:03
      line
      2017-05-05 18:40:00 5016 [Warning] InnoDB: A copy of page 4:4 in the doublewrite buffer slot 17 is not within space bounds
       
      2017-05-05 18:40:00 5016 [Warning] InnoDB: A copy of page 5:4 in the doublewrite buffer slot 23 is not within space bounds
       
      2017-05-05 18:40:00 5016 [Warning] InnoDB: A copy of page 6:5 in the doublewrite buffer slot 30 is not within space bounds
       
      2017-05-05 18:40:02 4704 [ERROR] InnoDB: Database page corruption on disk or a failed file read of tablespace test/ibd4f page  [page id: space=5, page number=4]. You may have to recover from a backup.
       
      2017-05-05 18:40:02 4704 [ERROR] InnoDB: Read operation failed for tablespace ./test/ibd4f.ibd offset 4 with error Page read from tablespace is corrupted.
       
      2017-05-05 18:40:02 5016 [ERROR] Plugin 'InnoDB' init function returned error.
       
      2017-05-05 18:40:02 5016 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
      

      Attachments

        Issue Links

          Activity

            The test is at fault.

            The main purpose of the test is to ensure that data files are extended to the desired size when applying redo log.

            The test correctly ensures that no redo log checkpoint occurred after the CREATE TABLE statements. But it does not ensure that nothing was written to the doublewrite buffer for the pages that the test is truncating on purpose.

            Apparently, sometimes some of the pages that the test is truncating would already have been written to the doublewrite buffer, causing failure.

            Under normal operation, nothing should be written to the doublewrite buffer before the data file has been extended to the appropriate size. Therefore, we should not touch the doublewrite recovery code, but instead make the test more robust, either by zeroing out the offending pages from the doublewrite buffer or by skipping the test if doublewrite buffer entries exist for the files that the test is about to truncate.

            marko Marko Mäkelä added a comment - The test is at fault. The main purpose of the test is to ensure that data files are extended to the desired size when applying redo log. The test correctly ensures that no redo log checkpoint occurred after the CREATE TABLE statements. But it does not ensure that nothing was written to the doublewrite buffer for the pages that the test is truncating on purpose. Apparently, sometimes some of the pages that the test is truncating would already have been written to the doublewrite buffer, causing failure. Under normal operation, nothing should be written to the doublewrite buffer before the data file has been extended to the appropriate size. Therefore, we should not touch the doublewrite recovery code, but instead make the test more robust, either by zeroing out the offending pages from the doublewrite buffer or by skipping the test if doublewrite buffer entries exist for the files that the test is about to truncate.

            I pushed a follow-up fix to work around MDEV-12699.

            marko Marko Mäkelä added a comment - I pushed a follow-up fix to work around MDEV-12699 .

            People

              marko Marko Mäkelä
              elenst Elena Stepanova
              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.