lp:~akopytov/percona-xtrabackup/bug1255476

Created by Alexey Kopytov on 2014-05-01 and last modified on 2014-06-03
Get this branch:
bzr branch lp:~akopytov/percona-xtrabackup/bug1255476
Only Alexey Kopytov can upload to this branch. If you are Alexey Kopytov please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Recent revisions

4968. By Alexey Kopytov on 2014-06-03

Bug #1255476: InnoDB redo log incompatibility with 5.1/5.5 server and
              compressed tables

An upstream fix in MySQL 5.6.11 introduced a change that can make
InnoDB crash on recovery when replaying redo logs created on earlier
versions.

The fix changed page_cur_insert_rec_zip() to force page reorganization
even if enough space is available in the modification log on a
compressed page when an insert to the corresponding uncompressed page
would not succeed.

What the fix did not take into account is compatibility with earlier
server versions which do not perform such operation (i.e. 5.1, 5.5 and
pre-5.6.11).

When replaying such an insert (i.e. the one when page_zip_available()
returned ‘true’ but reorg_before_insert is also ‘true’), no page
reorganization is performed in assumption that it has already been
covered by the previous redo log entries (which is the case when
replaying a redo log created with 5.6.11+):

  if (recv_recovery_is_on()) {
   /* Insert into the uncompressed page only.
   The page reorganization or creation that we
   would attempt outside crash recovery would
   have been covered by a previous redo log record. */
                }

However, there are no corresponding previous records in redo logs
created by 5.1/5.5/5.6.10-. Which led to inconsistencies between
compressed and uncompressed page images and release/debug assertion
failures on subsequent page operations.

Fixed by changing page_cur_insert_rec_zip() to not attempt page
reorganization before insert on recovery. It is never required when
replaying a 5.6.11+ log anyway, and for previous versions it breaks
backward compatibility.

4967. By Alexey Kopytov on 2014-05-01

Null merge from 2.1.

4963. By Alexey Kopytov on 2014-04-30

Null merge from 2.1.

4962. By Alexey Kopytov on 2014-04-29

Null merge from 2.1.

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:percona-xtrabackup/2.2
This branch contains Public information 
Everyone can see this information.

Subscribers