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

mariabackup.log_page_corruption fails

    XMLWordPrintable

    Details

      Description

      There seems to be a race condition in the test mariabackup.log_page_corruption that was exposed by MDEV-26193. After that change, purge threads are no longer woken up on every transaction commit, but only about once per second.

      The test would now fail like this:

      10.6 a4dc9265792919eb1ad156780e1a93dc4c7c6ce8

      mariabackup.log_page_corruption          [ fail ]
              Test ended at 2021-07-22 10:55:46
       
      CURRENT_TEST: mariabackup.log_page_corruption
      Use of uninitialized value $n_pages in addition (+) at /mariadb/10.6/mysql-test/suite/mariabackup/include/corrupt-page.pl line 48.
      Use of uninitialized value $n_pages in multiplication (*) at /mariadb/10.6/mysql-test/suite/mariabackup/include/corrupt-page.pl line 65.
      Use of uninitialized value $n_pages in addition (+) at /mariadb/10.6/mysql-test/suite/mariabackup/include/corrupt-page.pl line 48.
      Use of uninitialized value $n_pages in multiplication (*) at /mariadb/10.6/mysql-test/suite/mariabackup/include/corrupt-page.pl line 65.
      Corrupted page 6
       was not copied to /dev/shm/10.6/mysql-test/var/tmp/backup_inc/test/t1_corrupted.ibd.delta. at /dev/shm/10.6/mysql-test/var/tmpMh3Gyv line 41, <$fh> line 1.
      mysqltest: At line 181: command "perl" failed with error: 255  my_errno: 175  errno: 175
       
      The result from queries just before the failure was:
      < snip >
      # Backup must not fail, but "innodb_corrupted_pages" file must be created due to --log-innodb-page-corruption option
      --- "innodb_corrupted_pages" file content: ---
      test/t1_corrupted
      6 8 9
      test/t1_inc_corrupted
      6 8 9
      test/t2_corrupted
      7 8 10
      test/t2_inc_corrupted
      7 8 10
      test/t4_inc_corrupted_new
      1
      test/t5_corrupted_to_rename_renamed
      6
      test/t5_inc_corrupted_to_rename_renamed
      6
      test/t7_inc_corrupted_to_alter
      3
      ------
      # Check if corrupted pages were copied to delta files, and non-corrupted pages are not copied.
       
      More results from queries before failure can be found in /dev/shm/10.6/mysql-test/var/log/log_page_corruption.log
      

      Note that there is no guarantee that any purge tasks will actually run; that could depend on the load on the operating system and CPU. I believe that similar failures should be possible even before MDEV-26193 was implemented.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              vlad.lesin Vladislav Lesin
              Reporter:
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:

                  Git Integration