maria:bb-pr-774

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

Branch merges

Branch information

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

Recent commits

9d2420b... by Anel Husaković

MDEV-12914: Disable silently call of myisam

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.

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.

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.

fdb9e66... by Marko Mäkelä

Implement a parameter for wait_all_purged.inc

e9f1d8d... by Marko Mäkelä

Fix warnings about possibly uninitialized variables

0585540... by Igor Babaev

MDEV-16629 "Table Does Not Exist" Error from Recursive CTE Query Inside Function

When processing a query containing with clauses a call of the function
check_dependencies_in_with_clauses() before opening tables used in the
query is necessary if with clauses include specifications of recursive
CTEs.
This call was missing if such a query belonged to a stored function.
This caused misbehavior of the server: it could report a fake error
as in the test case for MDEV-16629 or the executed query could hang
as in the test cases for MDEV-16661 and MDEV-15151.