Some wsrep provider options only validate the first character of the value when setting it dynamically. This causes the wsrep options to be set to an invalid value and those options in wsrep_provider_options to have a truncated value.
node2:root@localhost> SET GLOBAL WSREP_PROVIDER_EVS_CAUSAL_KEEPALIVE_PERIOD=Panyvalue;
|
Query OK, 0 rows affected (0.000 sec)
|
|
node2:root@localhost>
|
node2:root@localhost> SELECT @@WSREP_PROVIDER_EVS_CAUSAL_KEEPALIVE_PERIOD;
|
+----------------------------------------------+
|
| @@WSREP_PROVIDER_EVS_CAUSAL_KEEPALIVE_PERIOD |
|
+----------------------------------------------+
|
| Panyvalue |
|
+----------------------------------------------+
|
1 row in set (0.013 sec)
|
|
node2:root@localhost>
|
|
node2:root@localhost> SET GLOBAL WSREP_PROVIDER_EVS_CAUSAL_KEEPALIVE_PERIOD=anyvalue;
|
ERROR 1231 (42000): Variable 'evs_causal_keepalive_period' can't be set to the value of 'anyvalue'
|
node2:root@localhost>
|
WSREP_PROVIDER_EVS_CAUSAL_KEEPALIVE_PERIOD will have a truncated value in wsrep_provider_options.
node2:root@localhost> select @@wsrep_provider_options\G
|
*************************** 1. row ***************************
|
@@wsrep_provider_options: base_dir = /test/mtest/GAL_MD281122-mariadb-10.11.2-linux-x86_64-dbg/node2/; base_host = 127.0.0.1; base_port = 11842; cert.log_conflicts = no; cert.optimistic_pa = yes; debug = no; evs.auto_evict = 0; evs.causal_keepalive_period = P; [..]
|
node2:root@localhost> SET GLOBAL WSREP_PROVIDER_EVS_DELAYED_KEEP_PERIOD=Pdummy;
|
Query OK, 0 rows affected (0.001 sec)
|
|
node2:root@localhost> select @@WSREP_PROVIDER_EVS_DELAYED_KEEP_PERIOD;
|
+------------------------------------------+
|
| @@WSREP_PROVIDER_EVS_DELAYED_KEEP_PERIOD |
|
+------------------------------------------+
|
| Pdummy |
|
+------------------------------------------+
|
1 row in set (0.000 sec)
|
|
node2:root@localhost> SET GLOBAL WSREP_PROVIDER_EVS_DELAYED_KEEP_PERIOD=dummy;
|
ERROR 1231 (42000): Variable 'evs_delayed_keep_period' can't be set to the value of 'dummy'
|
node2:root@localhost>
|
|
node2:root@localhost> SET GLOBAL WSREP_PROVIDER_EVS_DEBUG_LOG_MASK='1dummy';
|
Query OK, 0 rows affected (0.000 sec)
|
|
node2:root@localhost> select @@WSREP_PROVIDER_EVS_DEBUG_LOG_MASK;
|
+-------------------------------------+
|
| @@WSREP_PROVIDER_EVS_DEBUG_LOG_MASK |
|
+-------------------------------------+
|
| 1dummy |
|
+-------------------------------------+
|
1 row in set (0.031 sec)
|
|
node2:root@localhost> SET GLOBAL WSREP_PROVIDER_EVS_DEBUG_LOG_MASK='dummy';
|
Query OK, 0 rows affected (0.000 sec)
|
|
node2:root@localhost> select @@WSREP_PROVIDER_EVS_DEBUG_LOG_MASK;
|
+-------------------------------------+
|
| @@WSREP_PROVIDER_EVS_DEBUG_LOG_MASK |
|
+-------------------------------------+
|
| dummy |
|
+-------------------------------------+
|
1 row in set (0.000 sec)
|
|
node2:root@localhost>
|
node2:root@localhost> SET GLOBAL WSREP_PROVIDER_EVS_DEBUG_LOG_MASK='ummy';
|
ERROR 1231 (42000): Variable 'evs_debug_log_mask' can't be set to the value of 'ummy'
|
node2:root@localhost>
|
These are the variables that have this issue.
WSREP_PROVIDER_EVS_CAUSAL_KEEPALIVE_PERIOD
|
WSREP_PROVIDER_EVS_DEBUG_LOG_MASK
|
WSREP_PROVIDER_EVS_DELAYED_KEEP_PERIOD
|
WSREP_PROVIDER_EVS_DELAY_MARGIN
|
WSREP_PROVIDER_EVS_INACTIVE_CHECK_PERIOD
|
WSREP_PROVIDER_EVS_INACTIVE_TIMEOUT
|
WSREP_PROVIDER_EVS_INFO_LOG_MASK
|
WSREP_PROVIDER_EVS_INSTALL_TIMEOUT
|
WSREP_PROVIDER_EVS_JOIN_RETRANS_PERIOD
|
WSREP_PROVIDER_EVS_KEEPALIVE_PERIOD
|
WSREP_PROVIDER_EVS_STATS_REPORT_PERIOD
|
WSREP_PROVIDER_EVS_SUSPECT_TIMEOUT
|
WSREP_PROVIDER_REPL_CAUSAL_READ_TIMEOUT
|
Similarly WSREP_PROVIDER GCS_FC_LIMIT does not allow setting value in kilobyte format.
node1:root@localhost>
It was permissible to set the value through wsrep_provider_options
*************************** 1. row ***************************
10.9.5-opt>