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

innodb.alter_kill fails in buildbot with Unknown storage engine 'InnoDB'

Details

    Description

      http://buildbot.askmonty.org/buildbot/builders/kvm-deb-stretch-ppc64le/builds/2273

      innodb.alter_kill 'innodb'               w1 [ fail ]
              Test ended at 2018-05-22 23:06:36
       
      CURRENT_TEST: innodb.alter_kill
      mysqltest: At line 70: query 'SELECT COUNT(*) FROM bug16720368' failed with wrong errno 1286: 'Unknown storage engine 'InnoDB'', instead of 1932...
       
      The result from queries just before the failure was:
      < snip >
      SET GLOBAL innodb_file_per_table=1;
      CREATE TABLE bug16720368_1 (a INT PRIMARY KEY) ENGINE=InnoDB;
      connect  con1,localhost,root;
      CREATE TABLE bug16720368 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
      INSERT INTO bug16720368 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8);
      connection default;
      # Cleanly shutdown mysqld
      disconnect con1;
      # Corrupt FIL_PAGE_OFFSET in bug16720368.ibd,
      # and update the checksum to the "don't care" value.
      # Restart mysqld
      # This will succeed after a clean shutdown, due to
      # fil_open_single_table_tablespace(check_space_id=FALSE).
      SELECT COUNT(*) FROM bug16720368;
      COUNT(*)
      8
      INSERT INTO bug16720368_1 VALUES(1);
      # The table is unaccessible, because after a crash we will
      # validate the tablespace header.
      SELECT COUNT(*) FROM bug16720368;
      

      Attachments

        Issue Links

          Activity

            I believe that the test simply needs to be updated after MDEV-12288.

            The test is shutting down InnoDB, corrupting a file, and finally restarting InnoDB. Before the shutdown, the test created the table and inserted some records. Before MDEV-12288, there would be no access to the table after server restart, but after MDEV-12288 we would reset the transaction identifier after the INSERT.

            To make the test deterministic again, we must wait for purge to complete before the shutdown.

            marko Marko Mäkelä added a comment - I believe that the test simply needs to be updated after MDEV-12288 . The test is shutting down InnoDB, corrupting a file, and finally restarting InnoDB. Before the shutdown, the test created the table and inserted some records. Before MDEV-12288 , there would be no access to the table after server restart, but after MDEV-12288 we would reset the transaction identifier after the INSERT. To make the test deterministic again, we must wait for purge to complete before the shutdown.

            I noticed a similar failure and dug up the reason from the server error log mysqld.1.err:

            10.3 c3289d27eef39a47fed2ce1ff239013ed6870f39

            2018-07-03 11:51:39 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=1649563
            2018-07-03 11:51:39 0 [ERROR] InnoDB: Header page contains inconsistent data in datafile: ./test/bug16720368.ibd, Space ID:6, Flags: 33. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
            2018-07-03 11:51:39 0 [Note] InnoDB: Page size:1024. Pages to analyze:64
            2018-07-03 11:51:39 0 [Note] InnoDB: VALID: space:6 page_no:0 page_size:1024
            2018-07-03 11:51:39 0 [Note] InnoDB: Page size: 1024. Possible space_id count:1
            2018-07-03 11:51:39 0 [Note] InnoDB: space_id:6, Number of pages matched: 1/1 (1024)
            2018-07-03 11:51:39 0 [Note] InnoDB: Chosen space:6
            2018-07-03 11:51:39 0 [ERROR] InnoDB: Corrupted page [page id: space=6, page number=0] of datafile './test/bug16720368.ibd' could not be found in the doublewrite buffer.
            2018-07-03 11:51:39 0 [ERROR] InnoDB: Tablespace 6 was not found at ./test/bug16720368.ibd.
            2018-07-03 11:51:39 0 [ERROR] InnoDB: Set innodb_force_recovery=1 to ignore this and to permanently lose all changes to the tablespace.
            2018-07-03 11:51:39 0 [ERROR] InnoDB: Plugin initialization aborted at srv0start.cc[2006] with error Tablespace not found
            2018-07-03 11:51:40 0 [Note] InnoDB: Starting shutdown...
            

            The failure in the mysql-test log looked exactly the same as in the Description:

            CURRENT_TEST: innodb.alter_kill
            mysqltest: At line 70: query 'SELECT COUNT(*) FROM bug16720368' failed with wrong errno 1286: 'Unknown storage engine 'InnoDB'', instead of 1932...
            

            This may be a duplicate of MDEV-12905.

            marko Marko Mäkelä added a comment - I noticed a similar failure and dug up the reason from the server error log mysqld.1.err : 10.3 c3289d27eef39a47fed2ce1ff239013ed6870f39 2018-07-03 11:51:39 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=1649563 2018-07-03 11:51:39 0 [ERROR] InnoDB: Header page contains inconsistent data in datafile: ./test/bug16720368.ibd, Space ID:6, Flags: 33. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue. 2018-07-03 11:51:39 0 [Note] InnoDB: Page size:1024. Pages to analyze:64 2018-07-03 11:51:39 0 [Note] InnoDB: VALID: space:6 page_no:0 page_size:1024 2018-07-03 11:51:39 0 [Note] InnoDB: Page size: 1024. Possible space_id count:1 2018-07-03 11:51:39 0 [Note] InnoDB: space_id:6, Number of pages matched: 1/1 (1024) 2018-07-03 11:51:39 0 [Note] InnoDB: Chosen space:6 2018-07-03 11:51:39 0 [ERROR] InnoDB: Corrupted page [page id: space=6, page number=0] of datafile './test/bug16720368.ibd' could not be found in the doublewrite buffer. 2018-07-03 11:51:39 0 [ERROR] InnoDB: Tablespace 6 was not found at ./test/bug16720368.ibd. 2018-07-03 11:51:39 0 [ERROR] InnoDB: Set innodb_force_recovery=1 to ignore this and to permanently lose all changes to the tablespace. 2018-07-03 11:51:39 0 [ERROR] InnoDB: Plugin initialization aborted at srv0start.cc[2006] with error Tablespace not found 2018-07-03 11:51:40 0 [Note] InnoDB: Starting shutdown... The failure in the mysql-test log looked exactly the same as in the Description: CURRENT_TEST: innodb.alter_kill mysqltest: At line 70: query 'SELECT COUNT(*) FROM bug16720368' failed with wrong errno 1286: 'Unknown storage engine 'InnoDB'', instead of 1932... This may be a duplicate of MDEV-12905 .

            thiru did great work with MDEV-15325; I hope this one (and MDEV-12905) can also be fixed soon.

            marko Marko Mäkelä added a comment - thiru did great work with MDEV-15325 ; I hope this one (and MDEV-12905 ) can also be fixed soon.

            The server error log contains the following, which suggests that this is a duplicate of MDEV-12905 (the doublewrite buffer is not working properly):

            2018-05-22 23:06:35 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=1649895
            2018-05-22 23:06:35 0 [ERROR] InnoDB: Header page contains inconsistent data in datafile: ./test/bug16720368.ibd, Space ID:6, Flags: 33. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
            2018-05-22 23:06:35 0 [Note] InnoDB: Page size:1024. Pages to analyze:64
            2018-05-22 23:06:35 0 [Note] InnoDB: VALID: space:6 page_no:0 page_size:1024
            2018-05-22 23:06:35 0 [Note] InnoDB: Page size: 1024. Possible space_id count:1
            2018-05-22 23:06:35 0 [Note] InnoDB: space_id:6, Number of pages matched: 1/1 (1024)
            2018-05-22 23:06:35 0 [Note] InnoDB: Chosen space:6
            2018-05-22 23:06:35 0 [ERROR] InnoDB: Corrupted page [page id: space=6, page number=0] of datafile './test/bug16720368.ibd' could not be found in the doublewrite buffer.
            2018-05-22 23:06:35 0 [ERROR] InnoDB: Tablespace 6 was not found at ./test/bug16720368.ibd.
            2018-05-22 23:06:35 0 [ERROR] InnoDB: Set innodb_force_recovery=1 to ignore this and to permanently lose all changes to the tablespace.
            2018-05-22 23:06:35 0 [ERROR] InnoDB: Plugin initialization aborted with error Tablespace not found
            2018-05-22 23:06:36 0 [Note] InnoDB: Starting shutdown...
            

            marko Marko Mäkelä added a comment - The server error log contains the following, which suggests that this is a duplicate of MDEV-12905 (the doublewrite buffer is not working properly): 2018-05-22 23:06:35 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=1649895 2018-05-22 23:06:35 0 [ERROR] InnoDB: Header page contains inconsistent data in datafile: ./test/bug16720368.ibd, Space ID:6, Flags: 33. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue. 2018-05-22 23:06:35 0 [Note] InnoDB: Page size:1024. Pages to analyze:64 2018-05-22 23:06:35 0 [Note] InnoDB: VALID: space:6 page_no:0 page_size:1024 2018-05-22 23:06:35 0 [Note] InnoDB: Page size: 1024. Possible space_id count:1 2018-05-22 23:06:35 0 [Note] InnoDB: space_id:6, Number of pages matched: 1/1 (1024) 2018-05-22 23:06:35 0 [Note] InnoDB: Chosen space:6 2018-05-22 23:06:35 0 [ERROR] InnoDB: Corrupted page [page id: space=6, page number=0] of datafile './test/bug16720368.ibd' could not be found in the doublewrite buffer. 2018-05-22 23:06:35 0 [ERROR] InnoDB: Tablespace 6 was not found at ./test/bug16720368.ibd. 2018-05-22 23:06:35 0 [ERROR] InnoDB: Set innodb_force_recovery=1 to ignore this and to permanently lose all changes to the tablespace. 2018-05-22 23:06:35 0 [ERROR] InnoDB: Plugin initialization aborted with error Tablespace not found 2018-05-22 23:06:36 0 [Note] InnoDB: Starting shutdown...

            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.