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

Fix crash recovery of key rotation

    XMLWordPrintable

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

          Activity

            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.