maria:bb-11.2-nikita

Last commit made on 2024-05-03
Get this branch:
git clone -b bb-11.2-nikita https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-11.2-nikita
Repository:
lp:maria

Recent commits

5669cb7... by Nikita Malyavin

fix race in the MDEV-32614 test

Sometimes 'continue' signal could be missed.

c436b6a... by Nikita Malyavin

MDEV-33450 Assertion fails in main.alter_table_online_debug

Assertion "from->s->online_alter_binlog == NULL" fails in
copy_data_between_tables, signalizing that a table share is being reused
(in another alter) after a lock upgrade to EXCLUSIVE fails.

Commit 3059f27 relaxed the lock to be upgraded to MDL_SHARED_NO_WRITE, leaving
it to happen later by a common path wait_while_table_is_used() call.

However the error handling there is not enough for online alter case, where we
require (for now) the table to be flushed, in order to clean up the memory
properly.

* Add another lock upgrade (to MDL_EXCLUSIVE) after the second replication stage
 in copy_data_between_tables.

The error from this upgrade will be handled by the branch presented further in
the function.

MDEV-33450 Assertion fails in main.alter_table_online_debug

`TABLE_SHARE` that is being online-altered has a shared `s->online_alter_binlog`
member that all concurrent DMLs are writing to. Online alter thread deletes it
under the MDL_EXCLUSIVE. If upgrading the lock to MDL_EXCLUSIVE fails, table as
marked as `flushed` and it's freed automatically when its usage drops to zero.

In commit 3059f27 the lock upgrade was relaxed to MDL_SHARED_NO_WRITE to allow
concurrent SELECT threads during the final `online_alter_read_from_binlog()`
pass. An attempt to upgrade the lock to MDL_EXCLUSIVE was still happening, but
much later — after the code that marked the table `flushed`.

That is, if the upgrade failed, the table was left with a stale
`s->online_alter_binlog` triggering an assert in a future online alter.

To fix this, upgrade the lock to MDL_EXCLUSIVE earlier, after the final
`online_alter_read_from_binlog()`.

398ae9e... by Nikita Malyavin

MDEV-33330 Server crash or assertion failure in binlog_get_pending_rows_event

When binlog_get_pending_rows_event was refactored, one usage in
binlog_need_stmt_format has not been taken in mind.

As binlog_get_pending_rows_event now requires existing cache_mngr, this check
is now made first.

7fe764b... by Sergei Golubchik

MDEV-32973 SHOW TABLES LIKE shows temporary tables with non-matching names

* compare both db and table name
* use the correct charset

4a35a3b... by Andre Alves <email address hidden>

MDEV-33659 Server crashed at Create_func_aes_decrypt::create_native

0b8c5d7... by Robin Newhouse <email address hidden>

Update URLs in test_upgrade script

Update the URLs in two places in the test_upgrade script.
* boost-program-options dependency points to
    archives.fedoraproject.org
* gpgkey for the MariaDB rpm repository points to
    archive.mariadb.org/PublicKey

This ensures that the upgrade testing run in .gitlab-ci.yml continues to
function and refers to the correct GPG key.

All new code of the whole pull request, including one or several files
that are either new files or modified ones, are contributed under the
BSD-new license. I am contributing on behalf of my employer Amazon Web
Services.

cd28b24... by Oleksandr "Sanja" Byelkin

Merge branch '11.1' into 11.2

683fbce... by Marko Mäkelä

Merge 11.0 into 11.1

fec2fd6... by Marko Mäkelä

Merge 10.11 into 11.0

a79fb66... by Marko Mäkelä

MDEV-33515 fixup for POWER