maria:bb-10.10-mdev-31400

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

Branch merges

Branch information

Name:
bb-10.10-mdev-31400
Repository:
lp:maria

Recent commits

3cbfd99... 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.

c2d5523... by Marko Mäkelä

Merge 10.9 into 10.10

35de832... by Marko Mäkelä

MDEV-31311: The test innodb.log_file_size_online occasionally hangs

log_t::write_checkpoint(), log_t::resize_start(): Invoke buf_flush_ahead()
with buf_pool.get_oldest_modification(0)+1 so that another checkpoint will
be invoked, to complete the log resizing.

Tested by: Oleg Smirnov (on Microsoft Windows, where this hung most often)

26fc07b... by Marko Mäkelä

Merge 10.6 into 10.9

f7b8a2c... by Marko Mäkelä

MDEV-31607 ER_DUP_KEY in mysql.innodb_table_stats upon RENAME on sequence

ha_innobase::delete_table(): Also on DROP SEQUENCE, do try to drop any
persistent statistics. They should really not be created for
SEQUENCE objects (which internally are 1-row no-rollback tables),
but that is how happened to always work.

dc1bd18... by Marko Mäkelä

MDEV-31386 InnoDB: Failing assertion: page_type == i_s_page_type[page_type].type_value

i_s_innodb_buffer_page_get_info(): Correct a condition.
After crash recovery, there may be some buffer pool pages in FREED state,
containing garbage (invalid data page contents). Let us ignore such pages
in the INFORMATION_SCHEMA output.

The test innodb.innodb_defragment_fill_factor will be removed, because
the queries that it is invoking on information_schema.innodb_buffer_page
would start to fail. The defragmentation feature was removed in
commit 7ca89af6f8faf1f8ec6ede01a9353ac499d37711 in MariaDB Server 11.1.

Tested by: Matthias Leich

3d90143... by Marko Mäkelä

MDEV-31559 btr_search_hash_table_validate() does not check if CHECK TABLE is killed

btr_search_hash_table_validate(), btr_search_validate(): Add the
parameter THD for checking if the statement has been killed.
Any non-QUICK CHECK TABLE will validate the entire adaptive hash index
for all InnoDB tables, which may be extremely slow when running
multiple concurrent CHECK TABLE.

d04de1a... by Marko Mäkelä

Merge 10.6 into 10.9

6d91121... by Oleg Smirnov

MDEV-30639 Upgrade to 10.8 and later does not work on Windows

During the upgrade procedure on Windows mysqld.exe is started with
the named pipe connection protocol. mysqladmin.exe then pings the
server to check if is up and running. Command line looks like:
   mysqladmin.exe --protocol=pipe --socket=mysql_upgrade_service_xxx ping
But the "socket" parameter resets the "protocol" which was previously
initialized with the "pipe" value, setting it to "socket".
As a result, connection cannot be established and the upgrade
procedure fails.
"socket" in Windows is used to pass the name of the pipe so resetting
the protocol is not valid in this case.

This commit fixes resetting of the "protocol" parameter with "socket"
parameter in the case when protocol has been previously initialized
to "pipe" value

8e2b20b... by Oleg Smirnov

MDEV-30639 Upgrade to 10.8 and later does not work on Windows

During the upgrade procedure on Windows mysqld.exe is started with
the named pipe connection protocol. mysqladmin.exe then pings the
server to check if is up and running. Command line looks like:
   mysqladmin.exe --protocol=pipe --socket=mysql_upgrade_service_xxx ping
But the "socket" parameter resets the "protocol" which was previously
initialized with the "pipe" value, setting it to "socket".
As a result, connection cannot be established and the upgrade
procedure fails.
"socket" in Windows is used to pass the name of the pipe so resetting
the protocol is not valid in this case.

This commit fixes resetting of the "protocol" parameter with "socket"
parameter in the case when protocol has been previously initialized
to "pipe" value