Bug #101178 The variable group_replication_force_members is better to be case insensitive
Submitted: 15 Oct 2020 6:55 Modified: 28 Oct 2021 7:19
Reporter: Richard Hao Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: Group Replication Severity:S4 (Feature request)
Version:8.0.21 OS:CentOS (7.5.1804)
Assigned to: MySQL Verification Team CPU Architecture:x86 (Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz)

[15 Oct 2020 6:55] Richard Hao
Description:
A member is specified by the hostname and the port in our GR group, and that is very easy for DBAs to use different case for group_replication_group_seeds,group_replication_group_seeds。such as in our my.cnf file

group_replication_local_address = 'centos7-cerver6:33061'
group_replication_group_seeds ='CentOS7-Server6:33061,Centos7-Server7:33061,CentOS7-Server8:33061'

Sometimes when we encounter a GR error which the Primary node is not able to reach a majority of members in the group,we need to force a new group membership, we do follow steps:
1. use sql "select * from performance_schema.replication_group_members;" to get member's info: member_host, member_port and form the active member list 

2. then force a new group membership by setting group_replication_force_members = active member list getting in step 1.

then we will get error:
ERROR 1231 (42000): Variable 'group_replication_force_members' can't be set to the value of 'XXXXXXXX'

We spend a lot of time to find the cause. 

How to repeat:
1. group_replication_local_address in lower case 
2. group_replication_group_seeds in upper case
3. GR group has five members, kill 3 secondary members at the same time
4. Primary node will block all dml and ddl,
5. use sql "select * from performance_schema.replication_group_members;" to get member's info: member_host, member_port and form the active member list 
6.setting group_replication_force_members = active member list getting in step 5.

then you will get the error
[15 Oct 2020 15:17] Richard Hao
> 1. use sql "select * from performance_schema.replication_group_members;" to get member's info : member_host, member_port and form the active member list 

we use sql "select * from performance_schema.replication_group_members;" to get member status and online members' member_host, use this "select @@group_replication_group_seeds" to get active member list,

mysql> select * from replication_group_members;
+---------------------------+--------------------------------------+------------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST      | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+------------------+-------------+--------------+-------------+----------------+
| group_replication_applier | 111284db-f88f-11ea-b10d-0050563c33c4 | CentOS7-Server6  |        3306 | ONLINE       | PRIMARY     | 8.0.21         |
| group_replication_applier | 11b72caa-f88f-11ea-9a5c-0050562c2906 | CentOS7-Server7  |        3306 | ONLINE       | SECONDARY   | 8.0.21         |
| group_replication_applier | 1219c539-f88f-11ea-b979-00505624863e | CentOS7-Server8  |        3306 | UNREACHABLE  | SECONDARY   | 8.0.21         |
| group_replication_applier | 62f8518b-023a-11eb-9228-000c29bbdbd8 | CentOS7-Server9  |        3306 | UNREACHABLE  | SECONDARY   | 8.0.21         |
| group_replication_applier | 62f8518b-023a-11eb-9228-000c29bbdbe9 | CentOS7-Server10 |        3306 | UNREACHABLE  | SECONDARY   | 8.0.21         |
+---------------------------+--------------------------------------+------------------+-------------+--------------+-------------+----------------+
mysql> select @@group_replication_group_seeds;
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
| @@group_replication_group_seeds                                                                                                                             |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CentOS7-Server6:33061,centos7-Server7:33061,CentOS7-Server8:33061,CentOS7-Server5:33061,CentOS7-Server9:33061,CentOS7-Server10:33061,CentOS7-Server11:33061 |
+--------------------------------------------------------------
-----------------------------------------------------------------------------------------------+

the active member list is 'CentOS7-Server6:33061,centos7-Server7:33061'
[28 Sep 2021 7:19] MySQL Verification Team
Hi,

Just to be sure, you are talking about the content not the settings name case sensitivity, so you are experiencing issues if you mix the hostname cases (centos7-1 vs CENTOS7-1) ?

Thanks
[29 Oct 2021 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".