maria:bb-10.9-MDEV-19281-v4

Last commit made on 2022-04-26
Get this branch:
git clone -b bb-10.9-MDEV-19281-v4 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.9-MDEV-19281-v4
Repository:
lp:maria

Recent commits

a0e48c5... by Julius Goryavsky <email address hidden>

MDEV-28291: Post-review changes

b9a8bc3... by Julius Goryavsky <email address hidden>

MDEV-28276: Post-review changes

65141a0... by Julius Goryavsky <email address hidden>

MDEV-28277: Post-review fixes

81680b0... by Julius Goryavsky <email address hidden>

MDEV-28291: Hashicorp: Cache variables claim to be dynamic but changes are ignored

This commit fixes an issue with no visible update in caching
option values after changing them dynamically while the server
is running. This issue was related to forgotten copy operations
of new values into dynamic variables. At the same time, internal
variables (responsible for caching) were always updated correctly.
The commit includes a test that checks that the update is now
reflected in the values of dynamic variables.

f787482... by Julius Goryavsky <email address hidden>

MDEV-28330: Hashicorp: Key caching doesn't appear to be working

Added test files for mtr that test failed configuration with
--loose-hashicorp-key-management-cache-version-timeout=180000
correctly set.

6becb0b... by Julius Goryavsky <email address hidden>

MDEV-28276: Hashicorp: checking that kv storage is created with version 2+

For the plugin to work properly, we need support for key versioning,
and for this, the kv storage in Hashicorp Vault must be created with
version 2 or higher. This commit adds such a check performed during
plugin initialization.

Note: checking for kv storage version during plugin initialization
can be disabled via --hashicorp-key-management-check-kv-version=off
command-line option or via the corresponding option in the server
configuration files.

2303157... by Julius Goryavsky <email address hidden>

MDEV-28277: Checking for mandatory "/v1/" prefix in the URL

According to the Hashicorp Vault API specifications,
the URL to access the keys must include the "/v1/" prefix
at the beginning of the path. This commit adds this parameter
check, as well as a check for the presence of at least one
letter in the hostname inside the URL and in the secret
store name (after "/v1/").

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

MDEV-28275: Hashicorp: ASAN heap-use-after-free in get_version()

Passing a string as a parameter by value has been replaced by
passing by reference to avoid using memory after it has been freed.

126be4f... by Julius Goryavsky <email address hidden>

MDEV-19281: Plugin implementation for the Hashicorp Vault KMS

- Authentication is done using the Hashicorp Vault's token
  authentication method;
- If additional client authentication is required, then the
  path to the CA authentication bundle file may be passed
  as a plugin parameter;
- The creation of the keys and their management is carried
  out using the Hashicorp Vault KMS and their tools;
- Key values stored as hexadecimal strings;
- Key values caching is supported.
- Implemented a time-invalidated cache for key values and
  for key version numbers received from the Hashicorp Valult
  server;
- The plugin uses libcurl (https) as an interface to
  the HashiCorp Vault server;
- JSON parsing is performed through the JSON service
  (through the include/mysql/service_json.h);
- HashiCorp Vault 1.2.4 was used for development and testing.

72a1250... by Rucha Deodhar <email address hidden>

MDEV-28029: No warnings if server starts with "--old"
Analysis: When --old option is used, the corresponding --old-mode variables
are set but warning is not given.
Fix: Use sql_print_warning() to give warning.