Details

    Description

      When MySQL 5.7.9 was merged to MariaDB 10.2.2, an important debug assertion was omitted from mlog_write_initial_log_record_low().

      Some MariaDB encryption code is violating the contract that was changed by WL#7142: any mini-transaction that is going to modify a persistent tablespace must first register that tablespace by calling mtr_t::set_named_space(). Because the debug assertion on mtr_t::is_named_space() had been removed, the problem could only manifest itself by random failures of encryption crash recovery.

      This started to occur more after the merge of MDEV-12253 from 10.1. The test encryption.innodb-redo-badkey was randomly emitting serious error messages on recovery:

      2017-05-09 16:51:33 140058457458560 [ERROR] InnoDB: Missing MLOG_FILE_NAME or MLOG_FILE_DELETE before MLOG_CHECKPOINT for tablespace 1
      

      The proper fix is to replace the missing debug assertion, to remove the improper suppressions of warnings, and to add the missing mtr_t::set_named_space() calls.

      Attachments

        Issue Links

          People

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