Description of problem: Calling `setfacl` on a volume whose bricks are on a tmpfs mount sets the ACLs on the brick dirs/files, but calling `getfacl` on the FUSE-mounted volume does not show the ACLs most of the time. However, if a file is `fallocate`d on that same tmpfs mount, and that file is mounted via loopback, that problem does not occur; `getfacl` always returns the ACLs on the FUSE-mounted volume. Version-Release number of selected component (if applicable): Tested on gluster 5.3 and 4.1. How reproducible: always Steps to Reproduce: 1. Mount a ramdisk mount -t tmpfs -o auto,nodev,nosuid,noexec,nodiratime,size=5G tmpfs /mnt/test 2. Make a test user adduser testuser 3. Create volume gluster volume create gv0 replica 3 server{1..3}:/mnt/test/brick 4. Start volume gluster volume start gv0 5. FUSE-mount the volume mkdir /mnt/gv0 && mount -t glusterfs -o acl server1,server2,server3:/gv0 /mnt/gv0 6. Create test file echo "test" > /mnt/gv0/test 7. Set ACL setfacl -m u:testuser:rwx /mnt/gv0/test 8. Check ACL Run several times to see that it is usually missing the ACL getfacl /mnt/gv0/test Actual results: ACLs are not there Expected results: ACLs should be there Additional info: When the ACLs aren't there, the gluster log has a trace that indicates `posix-acl-autoload` returns -1. When the ACLs are present, that message is not in the log. This seems to be a problem with gluster reading the ACLs from a tmpfs partition.
Just to clarify, running `getfacl` on the files in the actual brick (/mnt/test/brick) always returns the ACLs, so it doesn't seem to be a problem with storing / accessing the ACLs on a tmpfs partition -- just gluster reading those ACLs.
This bug is moved to https://github.com/gluster/glusterfs/issues/922, and will be tracked there from now on. Visit GitHub issues URL for further details