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

innodb.ibuf_not_empty failed in buildbot with "InnoDB: Trying to do I/O to a tablespace which does not exist"

Details

    Description

      http://buildbot.askmonty.org/buildbot/builders/win32-debug/builds/3643/steps/test/logs/stdio

      innodb.ibuf_not_empty 'innodb'           w2 [ fail ]  Found warnings/errors in server log file!
              Test ended at 2017-05-02 11:56:59
      line
      2017-05-02 11:56:58 21296 [ERROR] InnoDB: Trying to do I/O to a tablespace which does not exist. I/O type: read, page: [page id: space=92, page number=16], I/O length: 16384 bytes
       
      ^ Found warnings in D:/win32-debug/build/mysql-test/var/2/log/mysqld.1.err
      

      Attachments

        Activity

          Not easy to repeat: /mtr --vardir=/dev/shm innodb.ibuf_not_empty --repeat=40 no luck on Linux, changing to Windows.

          jplindst Jan Lindström (Inactive) added a comment - Not easy to repeat: /mtr --vardir=/dev/shm innodb.ibuf_not_empty --repeat=40 no luck on Linux, changing to Windows.

          With Windows this is repeatable (with --repeat=40 after ~15 rounds).

          jplindst Jan Lindström (Inactive) added a comment - With Windows this is repeatable (with --repeat=40 after ~15 rounds).
          jplindst Jan Lindström (Inactive) added a comment - https://github.com/MariaDB/server/commit/8edbb1117a9e1fd81fbd08b8f1d06c72efe38f44

          Tested on Windows with mysql-test-run.pl ibuf_not_empty --repeat=60 (normally it did give the error in less than 10 rounds).

          jplindst Jan Lindström (Inactive) added a comment - Tested on Windows with mysql-test-run.pl ibuf_not_empty --repeat=60 (normally it did give the error in less than 10 rounds).

          This might be a regression introduced by me when I removed the field tablespace_version in MySQL 5.7. OK to push.

          marko Marko Mäkelä added a comment - This might be a regression introduced by me when I removed the field tablespace_version in MySQL 5.7 . OK to push.

          commit aa22981dd2bfb710240ca377d07575e5359344a9
          Author: Jan Lindström <jan.lindstrom@mariadb.com>
          Date: Thu May 11 11:15:37 2017 +0300

          MDEV-12741: innodb.ibuf_not_empty failed in buildbot with "InnoDB: Trying to do I/O to a tablespace which does not exist"

          Background thread is doing ibuf merge, in buf0rea.cc buf_read_ibuf_merge_pages().
          It first tries to get page_size and if space is not found it deletes them, but
          as we do not hold any mutexes, space can be marked as stopped between that
          and buf_read_page_low() for same space. This naturally leads seen error
          message on log.

          buf_read_page_low(): Add parameter ignore_missing_space = false that
          is passed to fil_io()

          buf_read_ibuf_merge_pages(): call buf_read_page_low with
          ignore_missing_space = true, this function will handle missing
          space error code after buf_read_page_low returns.

          fil_io(): if ignore_missing_space = true do not print error
          message about trying to do I/0 for missing space, just return
          correct error code that is handled later.

          jplindst Jan Lindström (Inactive) added a comment - commit aa22981dd2bfb710240ca377d07575e5359344a9 Author: Jan Lindström <jan.lindstrom@mariadb.com> Date: Thu May 11 11:15:37 2017 +0300 MDEV-12741 : innodb.ibuf_not_empty failed in buildbot with "InnoDB: Trying to do I/O to a tablespace which does not exist" Background thread is doing ibuf merge, in buf0rea.cc buf_read_ibuf_merge_pages(). It first tries to get page_size and if space is not found it deletes them, but as we do not hold any mutexes, space can be marked as stopped between that and buf_read_page_low() for same space. This naturally leads seen error message on log. buf_read_page_low(): Add parameter ignore_missing_space = false that is passed to fil_io() buf_read_ibuf_merge_pages(): call buf_read_page_low with ignore_missing_space = true, this function will handle missing space error code after buf_read_page_low returns. fil_io(): if ignore_missing_space = true do not print error message about trying to do I/0 for missing space, just return correct error code that is handled later.

          People

            jplindst Jan Lindström (Inactive)
            elenst Elena Stepanova
            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.