maria:bb-pr-689

Last commit made on 2018-07-09
Get this branch:
git clone -b bb-pr-689 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-pr-689
Repository:
lp:maria

Recent commits

84331fe... by Anel Husaković

MDEV-14474 information_schema.check_constraints

Implement according to standard SQL specification 2008.
The check_constraints table is used for fetching metadata about
the constraints defined for tables in all databases.

There were some result files which failed after running mtr.
These files are updated with newly create record with mtr --record.

bbf780e... by Marko Mäkelä

Merge 10.2 into 10.3

1cc1d04... by Marko Mäkelä

MDEV-16664: Change the default to innodb_lock_schedule_algorithm=fcfs

The parameter innodb_lock_schedule_algorithm was introduced in
MariaDB Server 10.1.19, 10.2.13, 10.3.4 as part of MDEV-11039.
In MariaDB 10.1, the default value of the parameter is 'fcfs',
that is, the existing algorithm is used by default. But in
later versions of MariaDB Server, the parameter was 'vats',
enabling the new algorithm.

Because the new algorithm is triggering a debug assertion failure
that suggests corruption of the transactional lock data structures,
we will revert to the old algorithm by default until we have
resolved the problem.

934d5f9... by Marko Mäkelä

Merge 10.2 into 10.3

8b0d4cf... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-15855 Deadlock between purge thread and DDL statement

Problem:
========
Truncate operation holds MDL on the table (t1) and tries to
acquire InnoDB dict_operation_lock. Purge holds dict_operation_lock
and tries to acquire MDL on the table (t1) to evaluate virtual
column expressions for indexed virtual columns.
It leads to deadlock of purge and truncate table (DDL).

Solution:
=========
If purge tries to acquire MDL on the table then it should do the following:

i) Purge should release all innodb latches (including dict_operation_lock)
before acquiring metadata lock on the table.

ii) After acquiring metadata lock on the table, it should check whether the
table was dropped or renamed. If the table is dropped then purge should
ignore the undo log record. If the table is renamed then it should
release the old MDL and acquire MDL on the new name.

iii) Once purge acquires MDL, it should use the SQL table handle for all
the remaining virtual index for the purge record.

purge_node_t: Introduce new virtual column information to know whether
the MDL was acquired successfully.

This is joint work with Marko Mäkelä.

e3207b6... by Marko Mäkelä

MDEV-14188 mariabackup.incremental_encrypted wrong result

Add an explicit redo log flush. In this test
innodb_flush_log_at_trx_commit was 2 by default.
It is also possible that this failure occurs because of MDEV-15740.

e9b78a1... by Igor Babaev

Removed the test case for MDEV-15151 for the following reasons:

1. The changed variant did not fail without the patch for MDEV-16629
while the original test case did fail.
2. In any case the test case should go to cte_recursive_not_embedded.test
that was not created yet.

b4c377f... by Marko Mäkelä

Merge 10.2 into 10.3

1b335a7... by Marko Mäkelä

Clean up a test

At the end of a test, 'connection default' should be in a usable state.
This was not the case, because there was a preceding 'send' without a
'reap'. If 'reap' was added, an error would be reported because the
server was restarted after the 'send'. It is easiest to 'send' from a
separate connection and do the restart from 'connection default'.

d897b4d... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-15855: Use atomics for dict_table_t::n_ref_count

Make dict_table_t::n_ref_count private, and protect it with
a combination of dict_sys->mutex and atomics. We want to be
able to invoke dict_table_t::release() without holding
dict_sys->mutex.