The node (e.g. NameNode, ResourceManager) uses UGI.getGroupNames() now to get the information of the user's group who accessed it.
In UGI.getGroupsNames(), synchronized is declared, but UGI instance by various methods each time and the node get different lock in getGroupName().
For example, when cache time limit in userToGroupsMap of Groups expired and the node accepts many requests at the same time, each refers for group information in id command or JNI.
To improve the refer frequency of the group information, it should change about synchronization.