maria:bb-10.0-MDEV-10863

Last commit made on 2016-11-17
Get this branch:
git clone -b bb-10.0-MDEV-10863 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.0-MDEV-10863
Repository:
lp:maria

Recent commits

7618e95... by Kristian Nielsen on 2016-11-16

Fix incorrect reading of events from relaylog in parallel replication.

The SQL thread keeps track of the position in the current relay log from
which to read the next event. This position is not normally used, but a
certain interaction with the IO thread can cause the SQL thread to re-open
the relay log and seek to the stored position.

In parallel replication, there were a couple of places where the position
was not updated. This created a race where a re-open of the relay log could
seek to the wrong position and start re-reading and processing events
already handled once, causing various kinds of problems.

Fix this by moving the position update into a single place in
apply_event_and_update_pos(), which should ensure that the position is
always updated in the parallel replication case.

This problem was found from the testcase of MDEV-10863, but it is logically
a separate problem.

7dd9be0... by Kristian Nielsen on 2016-11-15

Back-port Master_info::using_parallel() to 10.0.

This has no functional changes, but it helps avoid merge problems from 10.0
to 10.1. In 10.0, code that checks for parallel replication uses
opt_slave_parallel_threads > 0, but this check needs to be
mi->using_parallel() in 10.1. By using the same check in 10.0 (with
unchanged semantics), merge problems to 10.1 are avoided.

d7daf09... by Rasmus Johansson on 2016-11-16

added a dash in front of extra version number

2caf57c... by Rasmus Johansson on 2016-11-15

Indicate which fix (MDEV) is included.

426c895... by Kristian Nielsen on 2016-11-04

MDEV-10863: parallel replication tries to continue from wrong position

This occured when the SQL thread (but not the IO thread) stops while
GTID and parallel replication are used with multiple domain ids in the
GTID position, and is restarted.

In this case, the SQL needs to start some way back in the relay log,
applying or skipping events within each replication domain as
appropriate.

The SQL threads starts at the beginning of an old relay log file, and
this position may be in the middle of an event group. The bug was that
such partial event group could be re-applied, causing replication
corruption.

This patch fixes the issue, by making sure to skip any initial events
that were part of an earlier (already applied) event group.

eca8c32... by Oleksandr Byelkin <email address hidden> on 2016-10-27

Typo fixed.

a079565... by Sergei Golubchik on 2016-10-27

MDEV-10846 Running mysqldump backup twice returns error: Table 'mysql.proc' doesn't exist.

Update test results after 26b87c3

d451d77... by Igor Babaev on 2016-10-26

Fixed bug mdev-9628.
In the function create_key_parts_for_pseudo_indexes()
the key part structures of pseudo-indexes created for
BLOB fields were set incorrectly.
Also the key parts for long fields must be 'truncated'
up to the maximum length acceptable for key parts.

9d4a0dd... by Igor Babaev on 2016-10-24

Fixed bug mdev-11096.
1. When min/max value is provided the null flag for it must be set to 0
in the bitmap Culumn_statistics::column_stat_nulls.
2. When the calculation of the selectivity of the range condition
over a column requires min and max values for the column then we
have to check that these values are provided.

26b87c3... by Alexey Botchkov on 2016-10-26

MDEV-10846 Running mysqldump backup twice returns error: Table
           'mysql.proc' doesn't exist.

        The mysql_rm_db() doesn't seem to expect the 'mysql' database
        to be deleted. Checks for that added.
        Also fixed the bug MDEV-11105 Table named 'db'
        has weird side effect.
        The db.opt file now removed separately.