maria:bb-10.4-MDEV-28294

Last commit made on 2022-08-24
Get this branch:
git clone -b bb-10.4-MDEV-28294 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.4-MDEV-28294
Repository:
lp:maria

Recent commits

c7c5037... by Brandon Nesterenko

MDEV-28294: set default role bypasses Replicate_Wild_Ignore_Table: mysql.%

Problem:
========
When replicating SET DEFAULT ROLE, the pre-update check (i.e. that
in set_var_default_role::check()) tries to validate the existence of
the given rules/user even when the targeted tables are ignored. When
previously issued CREATE USER/ROLE commands are ignored by the
replica because of the replication filtering rules, this results in
an error because the targeted data does not exist.

Solution:
========
Before checking that the given roles/user exist of a SET DEFAULT
ROLE command, first ensure that the mysql.user and
mysql.roles_mapping tables are not excluded by replication filters.

Reviewed By:
============
Andrei Elkin <email address hidden>
Sergei Golubchik <email address hidden>

e404315... by Nayuta Yanagisawa

Fix wrong diff introduced by merge commit

Many Spider tests were broken by the merge commit, 36d173e.

b68ae6d... by Marko Mäkelä

Merge 10.3 into 10.4

c7f8cfc... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-27700 ASAN: Heap_use_after_free in btr_search_drop_page_hash_index()

Reason:
=======
Race condition between btr_search_drop_hash_index() and
btr_search_lazy_free(). One thread does resizing of buffer pool
and clears the ahi on all pages in the buffer pool, frees the
index and table while removing the last reference. At the same time,
other thread access index->heap in btr_search_drop_hash_index().

Solution:
=========
Acquire the respective ahi latch before checking index->freed()

btr_search_drop_page_hash_index(): Added new parameter to indicate
that drop ahi entries only if the index is marked as freed

btr_search_check_marked_free_index(): Acquire all ahi latches and
return true if the index was freed

316847e... by Alexander Barkov

MDEV-27101 Subquery using the ALL keyword on TIMESTAMP columns produces a wrong result

TIMESTAMP columns were compared as strings in ALL/ANY comparison,
which did not work well near DST time change.

Changing ALL/ANY comparison to use "Native" representation to compare
TIMESTAMP columns, like simple comparison does.

36d173e... by Marko Mäkelä

Merge 10.3 into 10.4

6005f3c... by Marko Mäkelä

MDEV-25257 follow-up: Fix a test

Ever since commit 09177eadc39ae1e777ad473970456cb9dd9c3993
the test innodb.row_format_redundant cannot work when the
data file was created with innodb_checksum_algorithm=full_crc32.

Backport of 10.5 commit a9d0bb12e68a11c119a3534f354c7a7ef13dd5b5

fd0cd48... by Marko Mäkelä

MDEV-13013 fixup: Adjust a test

a1055ab... by Marko Mäkelä

MDEV-29043 mariabackup --compress hangs

Even though commit b817afaa1c148437e1016d1981f138d0c46ccbc8 passed
the test mariabackup.compress_qpress, that test turned out to be
too small to reveal one more problem that had previously been prevented
by the existence of ctrl_mutex. I did not realize that there can be
multiple concurrent callers to compress_write(). One of them is the
log copying thread; further callers are data file copying threads
(default: --parallel=1).

By default, there is only one compression worker thread
(--compress-threads=1).

compress_write(): Fix a race condition between threads that would
use the same worker thread object. Make thd->data_avail contain the
thread identifier of the submitter, and add thd->avail_cond to
notify other compress_write() threads that are waiting for a slot.

3216722... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-13013 InnoDB unnecessarily extends data files

   - While creating a new InnoDB segment, allocates the extent
before allocating the inode or page allocation even though
the pages are present in fragment segment. This patch does
reserve the extent when InnoDB ran out of fragment pages
in the tablespace.