Description of problem: Modern versions of Linux export more than 32 groups from the /proc/x/status file. Starting with version 3.8 as of commit 8d238027b87e654be552eabdf492042a34c5c300, all the supplementary groups (not just the first 32) are exported via procfs. This patch suggests that the resolve-gids switch would only be necessary on versions of Linux exporting only a subset of groups. That is, versions prior to v3.8. It would also be possible to #include <linux/limits.h> and use the NGROUPS_MAX defined there. However, it is currently the same as GF_MAX_AUX_GROUPS (65536) Additional info: Reported and patch proposed at https://github.com/gluster/glusterfs/pull/41
Please see the pull request for inline comments and suggested approach. Checking the OS (should be "Linux") and the kernel version can be done with uname() (see 'man 2 uname' for details).
I just checked in gluster 3.12.x frame_fill_groups() returns no limited groups when used getgrouplist (if resolve-gids if enabled) and limiting groups to 32 groups (defined by FUSE_MAX_AUX_GROUPS 32) when read it from /proc/PID/status. There are no reason in fuse code returns only 32 groups from /proc/PID/status. Can someone send patch from the pull request to remove that restriction?
REVIEW: https://review.gluster.org/20500 (fuse: use GF_MAX_AUX_GROUPS instead FUSE_MAX_AUX_GROUPS in frame_fill_groups) posted (#1) for review on master by Vitaly Lipatov
Hi Vitaly Lipatov, marking it as DEFERRED, as the issue is not being looked at actively. We will revisit later.
REVIEW: https://review.gluster.org/24111 (rebased and fixed commit from https://review.gluster.org/20500) posted (#1) for review on master by Vitaly Lipatov
This bug is moved to https://github.com/gluster/glusterfs/issues/1075, and will be tracked there from now on. Visit GitHub issues URL for further details