Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-30140

Some wsrep provider options only validate the first character of the value when setting it dynamically.

    XMLWordPrintable

Details

    Description

      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
      

      Attachments

        Issue Links

          Activity

            People

              sysprg Julius Goryavsky
              ramesh Ramesh Sivaraman
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.