maria:bb-10.11-MDEV-33420-fix2

Last commit made on 2024-04-20
Get this branch:
git clone -b bb-10.11-MDEV-33420-fix2 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.11-MDEV-33420-fix2
Repository:
lp:maria

Recent commits

8fd515e... by Julius Goryavsky <email address hidden>

HASHICORP_KEY_MANAGEMENT: MDEV-33420 post-fix

Compilation correction after MDEV-33420.

3f9f5ca... by Marko Mäkelä

MDEV-33447: libpmem is not available in RHEL 8

Because the Red Hat Enterprise Linux 8 core repository does not include
libpmem, let us implement the necessary subset ourselves.

pmem_persist(): Implement for 64-bit x86, ARM, POWER, RISC-V, Loongarch
in a way that should be compatible with the https://github.com/pmem/pmdk/
implementation of pmem_persist().

The CMake option WITH_INNODB_PMEM can be used for enabling or disabling
this interface at compile time. By default, it is enabled on all applicable
systems that are covered by our CI system.

Note: libpmem had not been previously enabled for Loongarch in our
Debian packaging. It was enabled for RISC-V, but we will not enable it
by default on RISC-V or Loongarch because we lack CI coverage.

The generated code for x86_64 was reviewed and tested on two
Intel implementations: one that only supports clflush, and
another that supports both clflushopt and clwb.

The generated machine code was also reviewed on https://godbolt.org
using various compiler versions. Godbolt helpfully includes an option
to compile to binary code and display the encoding, which was
useful on POWER.

Reviewed by: Vladislav Vaintroub

8a3755c... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-33934 Assertion `!check_foreigns' failed in
      bulk_insert_apply_for_table(dict_table_t*)

This issue is caused by
commit 188c5da72a0057e4572b1d7e4efcd0c39332a839 (MDEV-32453).

trx_t::bulk_insert_apply_for_table(): Remove the assert
check_unique_secondary and check_foreigns. InnoDB can
apply the bulk insert operation even after disabling
the check_foreigns and check_unique_secondary variable.

11aeef2... by Anel Husakovic <email address hidden>

MDEV-33420: HASHICORP_KEY_MANAGEMENT fails on Windows with libcurl installed

- When `libcurl` is installed in path out of default path, like on
Windows, `include_directories` failed to find `curl/curl.h`.
- Fix `cmake` by using modern syntax with imported target and
`find_package`
- Fix warnings treated as the errors
  - Remove `HASHICORP_HAVE_EXCEPTIONS` macro and related code
- Add package to `Server` component in Windows
- Tested with `$ ./mysql-test/mtr --suite=vault`
- Closes PR #3068
- Reviewer: <email address hidden>
            <email address hidden>

6815ab8... by Julius Goryavsky <email address hidden>

HASHICORP_KEY_MANAGEMENT: code unification between MariaDB editions

9705d62... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-33809 Bulk insert or DDL fails if a BLOB is too long

SyncFileIO should do multiple read/write call
when length is greater than os_file_request_size_max value.

863f599... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-33868 Assertion `trx->bulk_insert' failed in innodb_prepare_commit_versioned

- This issue is caused by commit 188c5da72a0057e4572b1d7e4efcd0c39332a839 (MDEV-32453).
InnoDB fails to end the bulk insert for the table after
applying the bulk insert operation. This leads to assertion
during commit process.

cac0fc9... by =?utf-8?q?Jan_Lindstr=C3=B6m?= <email address hidden>

MDEV-32974 : Member fails to join due to old seqno in GTID

Before MDEV-15158, wsrep xid information was stored in only one place:
in the TRX_SYS page. Starting with 10.3, it is not stored there but
in the rollback segment header pages, and the latest one is what
matters. MDEV-19229 allows the undo tablespaces to be rebuilt when
innodb_undo_tablespaces is changed on startup. Previously it was not
possible to change that parameter.

These changes caused the fact that rollback segment header pages could
contain several wsrep xid's stored and when undo tablespaces were
rebuilt there was a effort to restore wsrep xid back to rollback
segment header page but because there was several of them the latest
wsrep xid was overwritten with older one.

trx_rseg_read_wsrep_checkpoint
trx_rseg_init_wsrep_xid
 Return true if read xid is wsrep xid, false if not

trx_rseg_mem_restore
 Try to read wsrep xid and if it is found copy it to
 trx_sys.recovered_wsrep_xid if read xid has larger
 seqno.

5faf2fd... by Marko Mäkelä

MDEV-33585 fixup: GCC -Wsign-compare

d8a60dd... by Oleksandr "Sanja" Byelkin

Fix a typo which lead to compiler error on 32 bit systems