maria:bb-10.3-elenst

Last commit made on 2022-08-28
Get this branch:
git clone -b bb-10.3-elenst https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.3-elenst
Repository:
lp:maria

Recent commits

0d1de5e... by Elena Stepanova

MDEV-29403 innodb.innodb_sys_semaphore_waits fails with wrong errno 5014

take into account C/C specific CR_ERR_NET_WRITE error

94e3f02... by Igor Babaev

MDEV-29350 Crash when IN predicand is used in eliminated GROUP BY clause

This bug affected some queries with an IN/ALL/ANY predicand or an EXISTS
predicate whose subquery contained a GROUP BY clause that could be
eliminated. If this clause used a IN/ALL/ANY predicand whose left operand
was a single-value subquery then execution of the query caused a crash of
the server after invokation of remove_redundant_subquery_clauses().
The crash was caused by an attempt to exclude the unit for the single-value
subquery from the query tree for the second time by the function
Item_subselect::eliminate_subselect_processor().

This bug had been masked by the bug MDEV-28617 until a fix for the latter
that properly excluded units was pushed into 10.3.

Approved by Oleksandr Byelkin <email address hidden>

d1a80c4... by Marko Mäkelä

MDEV-29384 Hangs caused by innodb_adaptive_hash_index=ON

buf_defer_drop_ahi(): Remove. Ever since
commit c7f8cfc9e733517cff4aaa6f6eaca625a3afc098 (MDEV-27700)
it is safe to invoke btr_search_drop_page_hash_index(block, true)
to remove an orphan adaptive hash index.

Any attempt to upgrade page latches is prone to deadlocks. Recently,
we observed a few hangs that involved nothing more than a small table
consisting of one clustered index page, one secondary index page and
some undo pages.

2f6a728... by Sergei Golubchik

update a global_suppressions() list

followup for "remove invalid options from warning messages"

f2a53b6... by Marko Mäkelä

btr_search_drop_page_hash_index(): Remove a racey debug check

61f456e... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-29319 Assertion failure size_in_header >= space.free_limit in fsp_get_available_space_in_free_extents()

- Don't remove the constant parameter in fsp_get_available_space_in_free_extents()

dd737d0... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-29291 Assertion `!table->fts' failed in dict_table_can_be_evicted on SHUTDOWN

- InnoDB fts table initially added to LRU table cache
while creating the table. Later, table was marked
as non-evicted when we add the table to fts optimizer
list. Before marking the table as non-evicted, master
thread can try to evict the fts table.

0b80573... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-29319 Assertion failure size_in_header >= space.free_limit in fsp_get_available_space_in_free_extents()

- Race condition between fsp_get_available_space_in_free_extents()
and fsp_try_extend_data_file() while accessing space.free_limit.
Before calling fsp_get_available_space_in_free_extents(), take
shared lock on space->latch.

8963d64... 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>

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