Bug #119011 Execute some acl statements to a cluster without quorum in group replication makes login stuck
Submitted: 15 Sep 16:04
Reporter: toki ye (OCA) Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version: OS:Any
Assigned to: CPU Architecture:Any

[15 Sep 16:04] toki ye
Description:
  Execute some acl statements to a no quorum cluster in group replication make login process stuck for all new connections.

  1. Group Replication member without the acknowledges of other quorums, will  block and wait transaction to commit when execute acl statements like "CREATE USER ...".

  2. During this waiting time, an acl-cache write lock is acquiring for "CREATE USER ..." statement and could not release for a long time unless commit finishes.

  3. When new connection comes later, the server try to acquire acl-cahce lock to make identity authentication.

  4. Because Group Communication Service do not release acl-cache write lock for a long time, loggin process stucks.

---
  I alse try to find some familiar situations, one of the most similar is bug #330252231: SHELL HANGS FOR 2H IN ADDINSTANCE() (GR+CLONE). add instance process hangs for acl-cache lock because of executing acl statements when a new member adds.

  However, it has been solved since MySQL8.0.27.

  If there is any thing about this bug, i would be glad listen and hear about.

How to repeat:
  the description above can be repeated in the newest MySQL8.0 version by  the fllowing steps:

  1. Deploy a group replication with 3 members.

  2. Kill any two of them(in case of network disconnection), the only member will log like:'This server is not able to reach a majority of members in the group. This server will now block all updates. The server will remain blocked until contact with the majority is restored. It is possible to use group_replication_force_members to force a new group membership.'

  3. Execute "CREATE USER 'test'@'localhost' identified by 'uikK12*123...';" statement to the final member.

  4. Start to login in the final member with a new connection, then you will find login process stucks.