maria:bb-10.6-MDEV-32080

Last commit made on 2023-09-04
Get this branch:
git clone -b bb-10.6-MDEV-32080 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.6-MDEV-32080
Repository:
lp:maria

Recent commits

081c0f1... by Rex Johnston

MDEV-32080 Blank table alias weirdness

Simple check to make sure table aliases have length != 0

b0a4381... by Marko Mäkelä

Merge 10.5 into 10.6

59952b2... by Marko Mäkelä

Merge 10.4 into 10.5

d1fca0b... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-32060 Server aborts when table doesn't have referenced index

- Server aborts when table doesn't have referenced index.
This is caused by 5f09b53bdb4e973e7c7ec2c53a24c98321223f98 (MDEV-31086).
While iterating the foreign key constraints, we fail to
consider that InnoDB doesn't have referenced index for
it when foreign key check is disabled.

2325f8f... by Marko Mäkelä

Merge 10.5 into 10.6

2db5f1b... by Marko Mäkelä

MDEV-32049 Deadlock due to log_free_check() in trx_purge_truncate_history()

The function log_free_check() is not supposed to be invoked while
the caller is holding any InnoDB synchronization objects, such as
buffer page latches, tablespace latches, index tree latches, or
in this case, rseg->mutex (rseg->latch in 10.6 or later).

A hang was reported in 10.6 where several threads were waiting for
an rseg->latch that had been exclusively acquired in
trx_purge_truncate_history(), which invoked log_free_check() inside
trx_purge_truncate_rseg_history(). Because the threads that were
waiting for the rseg->latch were holding exclusive latches on some
index pages, log_free_check() was unable to advance the checkpoint
because those index pages could not be written out.

trx_purge_truncate_history(): Invoke log_free_check() before
acquiring the rseg->mutex and invoking trx_purge_free_segment().

trx_purge_free_segment(): Do not invoke log_free_check() in order
to avoid a deadlock.

3c86765... by Marko Mäkelä

MDEV-23974 fixup: Use standard quotes in have_innodb.inc

This fixes the following test:
set sql_mode=ORACLE;
--source include/have_innodb.inc

9d14665... by Marko Mäkelä

MDEV-32029 Assertion failures in log_sort_flush_list upon crash recovery

In commit 0d175968d1181a0308ce6caccc2e4fbc972ca6c6 (MDEV-31354)
we only waited that no buf_pool.flush_list writes are in progress.
The buf_flush_page_cleaner() thread could still initiate page writes
from the buf_pool.LRU list while only holding buf_pool.mutex, not
buf_pool.flush_list_mutex. This is something that was changed in
commit a55b951e6082a4ce9a1f2ed5ee176ea7dbbaf1f2 (MDEV-26827).

log_sort_flush_list(): Wait for the buf_flush_page_cleaner() thread to
be completely idle, including LRU flushing.

buf_flush_page_cleaner(): Always broadcast buf_pool.done_flush_list
when becoming idle, so that log_sort_flush_list() will be woken up.
Also, ensure that buf_pool.n_flush_inc() or
buf_pool.flush_list_set_active() has been invoked before any page
writes are initiated.

buf_flush_try_neighbors(): Release buf_pool.mutex here and not in the
callers, to avoid code duplication. Make innodb_flush_neighbors=ON
obey the innodb_io_capacity limit.

31ea201... by Marko Mäkelä

MDEV-30986 Slow full index scan for I/O bound case

buf_page_init_for_read(): Test a condition before acquiring a latch,
not while holding it.

buf_read_ahead_linear(): Do not use a memory transaction, because it
could be too large, leading to frequent retries.
Release the hash_lock as early as possible.

9b1b4a6... by Daniel Black

MDEV-31545 Revert "Fix gcc warning for wsrep_plug"

This reverts commit 38fe266ea9537acce888b210cb233f5854d7560e.

The correct fix was pushed to the 10.4 branch
(fbc157ab33bb2b7a239f13f8b64ce5935f0bdee9)