Bug #91537 Executing GROUP_ACTION should be blocked WHEN THERE ARE UNREACHABLE members
Submitted: 3 Jul 2018 12:45 Modified: 21 Dec 2018 15:01
Reporter: Dhruthi Komarlu Vasudeva Murthy Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Group Replication Severity:S3 (Non-critical)
Version:8.0.13 OS:Any
Assigned to: CPU Architecture:Any

[3 Jul 2018 12:45] Dhruthi Komarlu Vasudeva Murthy
Description:
When we try to execute a group action when there are UNREACHABLE members, the query waits for the UNREACHABLE member to return/until it is expelled to complete its execution, which could lead to some issues. So executing group_action should be blocked when there are UNREACHABLE members.

With WL#11570 it is easy to hit this case. (Where we can configure timeout to expel UNREACHABLE members).

How to repeat:
consider a group with 3 members (SPM) with member_expel_timeout=300s.
1. Drop n/w at M3.
2. Check that M3 is UNREACHABLE on {M1,M2}
    Execute group action on M1(eg):
    SELECT group_replication_switch_to_multi_primary_mode(); -> This
waits until M3 returns (before 300s)/expelled from group (after 300s).
[21 Dec 2018 15:01] David Moss
Posted by developer:
 
Thank you for your feedback, this has been fixed in upcoming versions and the following was added to the 8.0.14 changelog:

It was possible to use the group coordinator based UDFs which configure a group, such as group_replication_switch_to_single_primary_mode, while members were in the UNREACHABLE or RECOVERING state, and this caused the operation to wait until all members became ONLINE. This could result in the group coordinator operation never completing successfully. Now, if you issue any of these UDFs on a group in this state, an error is returned. Ensure all members are ONLINE before attempting to configure the group using the UDFs.