maria:bb-10.9-mdev-22979-31400

Last commit made on 2023-07-25
Get this branch:
git clone -b bb-10.9-mdev-22979-31400 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.9-mdev-22979-31400
Repository:
lp:maria

Recent commits

4104772... by Yuchen Pei <email address hidden>

MDEV-22979 MDEV-27233 MDEV-28218 Fixing spider init bugs

Fix spider init bugs (MDEV-22979, MDEV-27233, MDEV-28218) while
preventing regression on old ones (MDEV-30370, MDEV-29904)

Two things are changed:

First, Spider initialisation is made fully synchronous, i.e. it no
longer happens in a background thread. Adapted from the original fix
by nayuta for MDEV-27233. This change itself would cause failure when
spider is initialised early, by plugin-load-add, due to dependency on
Aria and udf function creation, which are fixed in the second and
third parts below. Requires SQL Service, thus porting earlier versions
requires MDEV-27595

Second, if spider is initialised before udf_init(), create udf by
inserting into `mysql.func`, otherwise do it by `CREATE FUNCTION` as
usual. This change may be generalised in MDEV-31401.

Also factor out some clean-up queries from deinit_spider.inc for use
of spider init tests.

A minor caveat is that early spider initialisation will fail if the
server is bootstrapped for the first time, due to missing `mysql`
database which needs to be created by the bootstrap script.

e045314... by Yuchen Pei

MDEV-27095 clean up spd_init_query.h

Removing procedures that were created and dropped during init.

This also fixes a race condition where mtr test with
plugin-load-add=ha_spider.so causes post test check to fail as it
expects the procedures to still be there.

4d200eb... by Yuchen Pei

MDEV-27095 installing one spider plugin should not trigger others

There are several plugins in ha_spider: spider, spider_alloc_mem,
spider_wrapper_protocols, spider_rewrite etc.

INSTALL PLUGIN foo SONAME ha_spider causes all the other ones to be
installed by the init queries where foo is any of the plugins.

This introduces unnecessary complexiy. For example it reads
mysql.plugins to find all other plugins, causing the hack of moving
spider plugin init to a separate thread.

To install all spider related plugins, install soname ha_spider should
be used instead.

This also fixes spurious rows in mysql.plugin when installing say only
the spider plugin with `plugin-load-add=SPIDER=ha_spider.so`:

select * from mysql.plugin;
name dl
spider_alloc_mem ha_spider.so # should not be here
spider_wrapper_protocols ha_spider.so # should not be here

Adapted from part of the reverted commit
c160a115b8b6dcd54bb3daf1a751ee9c68b7ee47.

de05a0e... by Yuchen Pei

MDEV-31400 Simple plugin dependency resolution

We introduce simple plugin dependency. A plugin init function may
return HA_ERR_RETRY_INIT. If this happens during server startup when
the server is trying to initialise all plugins, the failed plugins
will be retried, until no more plugins succeed in initialisation or
want to be retried.

This will fix spider init bugs which is caused in part by its
dependency on Aria for initialisation.

The reason we need a new return code, instead of treating every
failure as a request for retry, is that it may be impossible to clean
up after a failed plugin initialisation. Take InnoDB for example, it
has a global variable `buf_page_cleaner_is_active`, which may not
satisfy an assertion during a second initialisation try, probably
because InnoDB does not expect the initialisation to be called
twice.

b9c7da4... by Alexander Barkov

MDEV-30003 Assertion failure upon 2nd execution of SP trying to set collation on non-existing database

The DBUG_ASSER in HA_CREATE_INFO::resolve_to_charset_collation_context()
didn't take into account that the second execution is possible not only
during a prepared EXECUTE, but also during a CALL.

42738f5... by Alexander Barkov

MDEV-30681 SIGFPE / UBSAN runtime error: division by zero in String::needs_conversion on ALTER

The problem was earlier fixed by MDEV-30805. Adding an MTR test only.

b27167c... by Tuukka Pasanen <email address hidden>

Make sure that here is MariaDB client available

fe5957e... by Tuukka Pasanen <email address hidden>

MDEV-31118: Add Lintian overrides for false positives

MariaDB Compression pluging pacakages mariadb-plugin-provider-*
have only one shared object and those are not linked against
libc and it's intentional so supressing error
library-not-linked-against-libc

There is needed dependency for Systemd DH plugin which
makes error missing-build-dependency-for-dh-addon obsolette.

Reworked debian/control that makes most of
version-substvar-for-external-package error not correct
so remove those that are not available anymore and update
those that are still relevant.

NOTE TO MERGER: This is only up-to MariaDB 10.10.

14eff72... by Tuukka Pasanen <email address hidden>

MDEV-31118: Override lintian dh-addon for systemd

Lintian erros with
 missing-build-dependency-for-dh-addon systemd (*)

One of these premises should be installed:
 debhelper:any (>= 9.20160709~)
 debhelper-compat:any
 dh-sequence-systemd:any
 dh-systemd:any

As there is package debhelper version 10 or higher required
for build. This is false positive Lintian error which should
be supressed..

NOTE TO MERGER: This is only up-to MariaDB 10.10.

3dd3308... by Tuukka Pasanen <email address hidden>

MDEV-31118: Rework Salsa-CI YAML work again

Salsa-CI file has got in malfunction state and
if fails with YAML error:
 mariadb-10.3 with Buster backports upgrade job:
 undefined need: build buster-backports

Also remove Salsa-CI MariaDB 10.3 double
upgrade target.

There is also several upgrades which makes
test green again.

NOTE TO MERGER: This is only up-to MariaDB 10.10.

Remove