maria:bb-10.2.36-MDEV-24449-MDEV-24709

Last commit made on 2021-02-22
Get this branch:
git clone -b bb-10.2.36-MDEV-24449-MDEV-24709 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.2.36-MDEV-24449-MDEV-24709
Repository:
lp:maria

Recent commits

b7e9c2d... by Marko Mäkelä

MDEV-24709 Assertion !recv_no_ibuf_operations failed in ibuf_page_low()

recv_recovery_from_checkpoint_start(): Clear the recv_no_ibuf_operations
flag at the same time when we enabled writes to the log.

The failure to clear the flag might have caused some missed
change buffer merges, at least to the secondary index of SYS_TABLES
that were accessed by trx_resurrect_table_locks() while the last
recovery batch was in progress.

Thanks to Thirunarayanan Balathandayuthapani for suggesting this fix.

1b0c5fb... by Marko Mäkelä

MDEV-24449 Corruption of system tablespace or last recovered page

This corresponds to 10.5 commit 39378e1366f78b38c05e45103b9fb9c829cc5f4f.

With a patched version of the test innodb.ibuf_not_empty (so that
it would trigger crash recovery after using the change buffer),
and patched code that would modify the os_thread_sleep() in
recv_apply_hashed_log_recs() to be 1ms as well as add a sleep of
the same duration to the end of recv_recover_page() when
recv_sys->n_addrs=0, we can demonstrate a race condition.

After disabling some debug checks in buf_all_freed_instance(),
buf_pool_invalidate_instance() and buf_validate(), we managed to
trigger an assertion failure in fseg_free_step(), on the XDES_FREE_BIT.
In other words, an trx_undo_seg_free() call during
trx_rollback_resurrected() was attempting a double-free of a page.
This was repeated about once in 400 to 500 test runs. With the fix
applied, the test passed 2,000 runs.

recv_apply_hashed_log_recs(): Do not only wait for recv_sys->n_addrs
to reach 0, but also wait for buf_get_n_pending_read_ios() to reach 0,
to guarantee that buf_page_io_complete() will not be executing
ibuf_merge_or_delete_for_page().

bea84ae... by Igor Babaev

MDEV-23811: With large number of indexes optimizer chooses an inefficient plan

This bug could manifest itself for a query with WHERE condition containing
top level OR formula such that each conjunct contained a single-range
condition supported by the same index. One of these range conditions must
be fully covered by another range condition that is used later in the OR
formula. Additionally at least one of these condition should be ANDed with
a sargable range condition supported by a different index.

There were several attempts to fix related problems for OR conditions after
the backport of range optimizer code from MySQL (commit
0e19f3e36f7842583feb6bead2c2600cd620bced). Unfortunately the first of these
fixes contained typo remained unnoticed until recently. This typo bug led
to rejection of valid range accesses. This patch fixed this typo bug.
The fix revealed another two bugs: one in a constructor for SEL_ARG,
the other in the function tree_or(). Both are fixed in this patch.

1404f3b... by Sergey Petrunia

MDEV-24117: Memory management problem ...: Add a testcase

Add a testcase.

f81eef6... by Sergey Petrunia

MDEV-24117: Memory management problem in statistics state for ... IN

Part#1: Revert the patch that caused it:

commit 291be494744abe90f4bdf6b5a35c4c26ee8ddda5
Author: Igor Babaev <email address hidden>
Date: Thu Sep 24 22:02:00 2020 -0700

    MDEV-23811: With large number of indexes optimizer chooses an inefficient plan

2845b65... by Oleksandr "Sanja" Byelkin

Bump the version

19a847d... by Oleksandr "Sanja" Byelkin

MDEV-19838: followup to make happy following protocol implementations:
- mysqlnd from PHP < 7.3
- mysql-connector-python any version
- mysql-connector-java any version

Relaxed check about garbage at the end of the packet in case of no parameters.
Added check for array binding.
Fixed test according to the new paradigm (allow junk at the end of the packet)

6d3792a... by Elena Stepanova

List of unstable tests for 10.2.35 release

72eea39... by Marko Mäkelä

MDEV-23991 fixup: Initialize the memory

This regression was introduced in
commit afc9d00c66db946c8240fe1fa6b345a3a8b6fec1.
This is a partial backport of
commit 199863d72b7cccaa4c75641c50c45a83b568ab8c from 10.4.

fbcd7c0... by Marko Mäkelä

Update Connector/C