maria:bb-10.4-linuxjedi-MDEV-19210

Last commit made on 2023-08-10
Get this branch:
git clone -b bb-10.4-linuxjedi-MDEV-19210 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.4-linuxjedi-MDEV-19210
Repository:
lp:maria

Recent commits

e94b397... by Christian Hesse

MDEV-19210: do not run pre and post scripts as root

Now that we do not pollute systemd's environment but write private
environment files running these as root is not longer required. So
let's drop `PermissionsStartOnly=true`.

Debian adds extra `ExecStartPre=` and `ExecStartPost=`, though.
Use special executable prefix for full privileges there. (See
systemd.service(5) for details.)

e49068a... by Christian Hesse

MDEV-19210: update galera_new_cluster to use environment file

Now that the systemd unit files use an environment file to pass
_WSREP_START_POSITION we have to update galera_new_cluster as well.

fb932b9... by Christian Hesse

MDEV-19210: use environment file in systemd units for _WSREP_START_POSITION

We used to run `systemctl set-environment` to pass
_WSREP_START_POSITION. This is bad because:

* it clutter systemd's environment (yes, pid 1)
* it requires root privileges
* options (like LimitNOFILE=) are not applied

Let's just create an environment file in ExecStartPre=, that is read
before ExecStart= kicks in. We have _WSREP_START_POSITION around for the
main process without any downsides.

161ce04... by Andrew Hutchings

Revert "use environment file in systemd units for _WSREP_START_POSITION"

This reverts commit 6c40590405da71a592a65b68e6b41b11437fb517.

48e6918... by Andrew Hutchings

Revert "update galera_new_cluster to use environment file"

This reverts commit b54e4bf00b191633c74baad143c552bfb478fff3.

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

MDEV-31413 : Node has been dropped from the cluster on Startup / Shutdown with async replica

There was two related problems:

(1) Galera node that is defined as a slave to async MariaDB
master at restart might do SST (state stransfer) and
part of that it will copy mysql.gtid_slave_pos table.
Problem is that updates on that table are not replicated
on a cluster. Therefore, table from donor that is not
slave is copied and joiner looses gtid position it was
and start executing events from wrong position of the binlog.
This incorrect position could break replication and
causes node to be dropped and requiring user action.

(2) Slave sql thread might start executing events before
galera is ready (wsrep_ready=ON) and that could also
cause node to be dropped from the cluster.

In this fix we enable replication of mysql.gtid_slave_pos
table on a cluster. In this way all nodes in a cluster
will know gtid slave position and even after SST joiner
knows correct gtid position to start.

Furthermore, we wait galera to be ready before slave
sql thread executes any events to prevent too early
execution.

Signed-off-by: Julius Goryavsky <email address hidden>

b54e4bf... by Christian Hesse

update galera_new_cluster to use environment file

Now that the systemd unit files use an environment file to pass
_WSREP_START_POSITION we have to update galera_new_cluster as well.

6c40590... by Christian Hesse

use environment file in systemd units for _WSREP_START_POSITION

We used to run `systemctl set-environment` to pass
_WSREP_START_POSITION. This is bad because:

* it clutter systemd's environment (yes, pid 1)
* it requires root privileges
* options (like LimitNOFILE=) are not applied

Let's just create an environment file in ExecStartPre=, that is read
before ExecStart= kicks in. We have _WSREP_START_POSITION around for the
main process without any downsides.

ab10a67... by Sergei Golubchik

MDEV-31092 mysqldump --force doesn't ignore error as it should

failed SHOW CREATE FUNCTION means we don't dump this function,
but should still try to dump all other functions

4dd38f9... by Sergei Golubchik

MDEV-31800 Problem with open ranges on prefix blobs keys

don't construct open ranges from prefix blob keys for < (less than)
just as it's already done for > (greater than)

because prefix KEY_PART doesn't create prefix Field for blobs
(see open_table_from_share() near "Create a new field for the key part"),
so stored_field_cmp_to_item() will compare the original field to the
value not taking the prefix length into account.