Commit e571174e authored by Julius Goryavsky's avatar Julius Goryavsky

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.
parent 0902cfae
......@@ -356,7 +356,9 @@ static void cache_timeout_update (MYSQL_THD thd,
void *var_ptr,
const void *save)
{
cache_max_time = ms_to_ticks(* (long *) var_ptr);
long timeout = * (long *) save;
* (long *) var_ptr = timeout;
cache_max_time = ms_to_ticks(timeout);
}
static MYSQL_SYSVAR_LONG(cache_timeout, cache_timeout,
......@@ -370,7 +372,9 @@ static void
void *var_ptr,
const void *save)
{
cache_max_ver_time = ms_to_ticks(* (long *) var_ptr);
long timeout = * (long *) save;
* (long *) var_ptr = timeout;
cache_max_ver_time = ms_to_ticks(timeout);
}
static MYSQL_SYSVAR_LONG(cache_version_timeout, cache_version_timeout,
......
SELECT
@@HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT,
@@HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT;
@@HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT @@HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT
0 180000
SET GLOBAL
HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT= 1,
HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT= 1;
SELECT
@@HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT,
@@HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT;
@@HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT @@HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT
1 1
SET GLOBAL HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT=0, HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT=180000;
SELECT
@@HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT,
@@HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT;
@@HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT @@HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT
0 180000
--loose-hashicorp-key-management-cache-timeout=180000
--loose-hashicorp-key-management-cache-version-timeout=0
# MDEV-28291: Cache variables claim to be dynamic but changes are ignored
--source hashicorp_plugin.inc
--source hashicorp_init.inc
--let $ct=`SELECT @@HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT`
--let $vt=`SELECT @@HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT`
SELECT
@@HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT,
@@HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT;
SET GLOBAL
HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT= 1,
HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT= 1;
SELECT
@@HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT,
@@HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT;
--eval SET GLOBAL HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT=$vt, HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT=$ct
SELECT
@@HASHICORP_KEY_MANAGEMENT_CACHE_VERSION_TIMEOUT,
@@HASHICORP_KEY_MANAGEMENT_CACHE_TIMEOUT;
--source hashicorp_deinit.inc
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment