maria:10.6-MDEV-32175

Last commit made on 2024-02-16
Get this branch:
git clone -b 10.6-MDEV-32175 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
10.6-MDEV-32175
Repository:
lp:maria

Recent commits

9259722... by Marko Mäkelä

MDEV-32175 References to buf_page_t::frame may cost some performance

This is work in progress, for performance testing.

Based on the outcome, we might want to revert changes that cause
additional calls to page_offset() or page_align().

a26272a... by Marko Mäkelä

MDEV-33325 Crash in flst_read_addr on corrupted data

flst_read_addr(): Remove assertions. Instead, we will check these
conditions in the callers and avoid a crash in case of corruption.
We will check the conditions more carefully, because the callers
know more exact bounds for the page numbers and the byte offsets
withing pages.

In the following functions, the assertions will be removed without
replacement: flst_insert_after(), flst_insert_before(), flst_add_last(),
flst_add_first(), flst_remove(). These functions insert or delete
items in the doubly linked list of pages. There are debug assertions
for validating the input. We may copy corrupted pointers from existing
list nodes. Corruption will be noticed when the lists are being read.

53c6c82... by Marko Mäkelä

MDEV-33464 Crash when innodb_max_undo_log_size is set to innodb_page_size*4294967296

purge_sys_t::truncating_tablespace(): Clamp the
innodb_max_undo_log_size to the maximum number of pages
before converting the result into a 32-bit unsigned integer.

This fixes up commit f8c88d905b44bffe161158309e9acc25ad3691aa (MDEV-33213).

In later major versions, we would use 32-bit unsigned integer here
due to commit ca501ffb04246dcaa1f1d433d916d8436e30602e
and the code would crash also on 64-bit processors.

Reviewed by: Debarun Banerjee

691f923... by Marko Mäkelä

Merge 10.5 into 10.6

b770633... by Marko Mäkelä

Merge 10.4 into 10.5

68d9deb... by Marko Mäkelä

MDEV-33332 SIGSEGV in buf_read_ahead_linear() when bpage is in buf_pool.watch

buf_read_ahead_linear(): If buf_pool.watch_is_sentinel(*bpage),
do not attempt to read the page frame because the pointer would be null
for the elements of buf_pool.watch[].

Hitting this bug requires the use of a non-default value of
innodb_change_buffering.

d86deee... by Marko Mäkelä

Fix GCC 14 -Wcalloc-transposed-args

d64ade3... by Otto Kekäläinen

Properly introduce wsrep_sst_backup script in project packaging

The script wsrep_sst_backup was introduced on MariaDB 10.3 in commit
9b2fa2a. The new script was automatically included in RPM packages but not
in Debian packages (which started to fail on warning about stray file).

Include wsrep_sst_backup in the mariadb-server-10.5+ package, and also
include a stub man page so that packaging of a new script is complete.

Related:
https://galeracluster.com/documentation/html_docs_20210213-1355-master/documentation/backup-cluster.html

This commit was originally submitted in May 2022 in
https://github.com/MariaDB/server/pull/2129 but upstream indicated only
in May 2023 that it might get merged, thus this is for a later release.

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, Inc.

ae709b6... by Oleksandr "Sanja" Byelkin

fix view protocol in MDEV-29179

cae1863... by Jan Tojnar

MDEV-33439 Fix build with libxml2 2.12

libxml2 2.12.0 made `xmlGetLastError()` return `const` pointer:

https://gitlab.gnome.org/GNOME/libxml2/-/commit/61034116d0a3c8b295c6137956adc3ae55720711

Clang 16 does not like this:

    error: assigning to 'xmlErrorPtr' (aka '_xmlError *') from 'const xmlError *' (aka 'const _xmlError *') discards qualifiers
    error: cannot initialize a variable of type 'xmlErrorPtr' (aka '_xmlError *') with an rvalue of type 'const xmlError *' (aka 'const _xmlError *')

Let’s update the variables to `const`.
For older versions, it will be automatically converted.

But then `xmlResetError(xmlError*)` will not like the `const` pointer:

    error: no matching function for call to 'xmlResetError'
    note: candidate function not viable: 1st argument ('const xmlError *' (aka 'const _xmlError *')) would lose const qualifier

Let’s replace it with `xmlResetLastError()`.

ALso remove `LIBXMLDOC::Xerr` protected member property.
It was introduced in 65b0e5455b547a3d574fa77b34cce23ae3bea0a0
along with the `xmlResetError` calls.
It does not appear to be used for anything.