Bug 1677804
| Summary: | POSIX ACLs are absent on FUSE-mounted volume using tmpfs bricks (posix-acl-autoload usually returns -1) | ||
|---|---|---|---|
| Product: | [Community] GlusterFS | Reporter: | Chuck Wilson <chuck.wilson> |
| Component: | posix-acl | Assignee: | Susant Kumar Palai <spalai> |
| Status: | CLOSED UPSTREAM | QA Contact: | |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 5 | CC: | bugs, chuck.wilson, jthottan, spalai |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-03-12 12:39:44 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
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 |
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.