Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.2.2, 10.2.3, 10.2.4, 10.2.5
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
- relates to
-
MDEV-12253 Buffer pool blocks are accessed after they have been freed
-
- Closed
-
-
MDEV-12699 Improve crash recovery of corrupted data pages
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Link |
This issue relates to |
Link |
This issue relates to |
Labels | backup encryption recovery xtrabackup | 10.2-ga backup encryption recovery xtrabackup |
Status | Open [ 1 ] | Confirmed [ 10101 ] |
Status | Confirmed [ 10101 ] | In Progress [ 3 ] |
Assignee | Marko Mäkelä [ marko ] | Jan Lindström [ jplindst ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Assignee | Jan Lindström [ jplindst ] | Marko Mäkelä [ marko ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Workflow | MariaDB v3 [ 80683 ] | MariaDB v4 [ 152124 ] |