[Gluster-users] Gluster 3.7.1 not honoring 'acl' mount option when using autofs

Anthony Altemara Anthony.Altemara at q2labsolutions.com
Fri Aug 19 15:13:54 UTC 2016


Hello,

On the gluster client, I'm seeing an issue with using Gluster's 'acl' mount option when using autofs. When mounting directly, acl support works fine. When mounting via autofs, I'm getting 'operation not supported' when attempting to use 'setfacl' on a file on the gluster mount.

Glusterfs version: 3.7.1
Autofs version: 5.0.7
CentOS version: 7.2.1511 (Core)

Autofs line:
*       -fstype=glusterfs,acl     gluster-server:/&


#### WORKS WITH DIRECT MOUNT ####

# stat -f /mountpoint/deleteme
  File: "/mountpoint/deleteme"
    ID: 0        Namelen: 255     Type: fuseblk
Block size: 131072     Fundamental block size: 131072
Blocks: Total: 518635600  Free: 347741442  Available: 347741442
Inodes: Total: 1327748864 Free: 1315937975

# getfacl /mountpoint/deleteme
getfacl: Removing leading '/' from absolute path names
# file: mountpoint/deleteme
# owner: root
# group: root
user::rw-
user:git-ro:r--
group::r--
mask::r--
other::r--

# stat -f /mountpoint/deleteme
  File: "/mountpoint/deleteme"
    ID: 0        Namelen: 255     Type: fuseblk
Block size: 131072     Fundamental block size: 131072
Blocks: Total: 518635600  Free: 347740826  Available: 347740826
Inodes: Total: 1327748864 Free: 1315937926

# umount /mountpoint


#### BROKEN WITH AUTOFS  MOUNT ####

### Contents of auto.gluster-server:
*       -fstype=glusterfs,acl     gluster-server:/&

# service autofs start

# setfacl -m 'u:git-ro:r' /mountpoint/deleteme
setfacl: /mountpoint/deleteme: Operation not supported

[root at gluster-client-host]  /srv# strace setfacl -m 'u:git-ro:r' /mountpoint/deleteme
execve("/usr/bin/setfacl", ["setfacl", "-m", "u:git-ro:r", "/mountpoint/d"...], [/* 23 vars */]) = 0
brk(0)                                  = 0x83a000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2a5a211000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=29014, ...}) = 0
mmap(NULL, 29014, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2a5a209000
close(3)                                = 0
open("/lib64/libacl.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\37\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=37056, ...}) = 0
mmap(NULL, 2130560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2a59de8000
mprotect(0x7f2a59def000, 2097152, PROT_NONE) = 0
mmap(0x7f2a59fef000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7f2a59fef000
close(3)                                = 0
open("/lib64/libattr.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\23\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=19888, ...}) = 0
mmap(NULL, 2113904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2a59be3000
mprotect(0x7f2a59be7000, 2093056, PROT_NONE) = 0
mmap(0x7f2a59de6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f2a59de6000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \34\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2107816, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2a5a208000
mmap(NULL, 3932736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2a59822000
mprotect(0x7f2a599d8000, 2097152, PROT_NONE) = 0
mmap(0x7f2a59bd8000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b6000) = 0x7f2a59bd8000
mmap(0x7f2a59bde000, 16960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2a59bde000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2a5a206000
arch_prctl(ARCH_SET_FS, 0x7f2a5a206740) = 0
mprotect(0x7f2a59bd8000, 16384, PROT_READ) = 0
mprotect(0x7f2a59de6000, 4096, PROT_READ) = 0
mprotect(0x7f2a59fef000, 4096, PROT_READ) = 0
mprotect(0x607000, 4096, PROT_READ)     = 0
mprotect(0x7f2a5a212000, 4096, PROT_READ) = 0
munmap(0x7f2a5a209000, 29014)           = 0
brk(0)                                  = 0x83a000
brk(0x85b000)                           = 0x85b000
brk(0)                                  = 0x85b000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=106065056, ...}) = 0
mmap(NULL, 106065056, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2a532fb000
close(3)                                = 0
socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3
connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1717, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2a5a210000
read(3, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1717
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f2a5a210000, 4096)            = 0
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=29014, ...}) = 0
mmap(NULL, 29014, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f2a5a209000
close(3)                                = 0
open("/lib64/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=61928, ...}) = 0
mmap(NULL, 2173048, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f2a530e8000
mprotect(0x7f2a530f4000, 2093056, PROT_NONE) = 0
mmap(0x7f2a532f3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb000) = 0x7f2a532f3000
mmap(0x7f2a532f5000, 22648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f2a532f5000
close(3)                                = 0
mprotect(0x7f2a532f3000, 4096, PROT_READ) = 0
munmap(0x7f2a5a209000, 29014)           = 0
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2314, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2a5a210000
read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 2314
close(3)                                = 0
munmap(0x7f2a5a210000, 4096)            = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=4*1024}) = 0
lstat("/mountpoint/deleteme", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
getxattr("/mountpoint/deleteme", "system.posix_acl_access", 0x7ffc5ecf7f80, 132) = -1 EOPNOTSUPP (Operation not supported)
setxattr("/mountpoint/deleteme", "system.posix_acl_access", "\x02\x00\x00\x00\x01\x00\x06\x00\xff\xff\xff\xff\x02\x00\x04\x00\xf5\x03\x00\x00\x04\x00\x04\x00\xff\xff\xff\xff\x10\x00\x04\x00\xff\xff\xff\xff \x00\x04\x00\xff\xff\xff\xff", 44, 0) = -1 EOPNOTSUPP (Operation not supported)
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2502, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2a5a210000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2502
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f2a5a210000, 4096)            = 0
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "setfacl: /mountpoint/"..., 74setfacl: /mountpoint/deleteme: Operation not supported
) = 74
exit_group(1)                           = ?
+++ exited with 1 +++


# rpm -qa | grep gluster
glusterfs-client-xlators-3.7.1-16.0.1.el7.centos.x86_64
glusterfs-libs-3.7.1-16.0.1.el7.centos.x86_64
glusterfs-3.7.1-16.0.1.el7.centos.x86_64
glusterfs-fuse-3.7.1-16.0.1.el7.centos.x86_64

# yum info glusterfs
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.usf.edu
 * epel: mirror.symnds.com
 * extras: mirror.symnds.com
 * updates: mirror.fusioncloud.co
Installed Packages
Name        : glusterfs
Arch        : x86_64
Version     : 3.7.1
Release     : 16.0.1.el7.centos
Size        : 1.6 M
Repo        : installed
>From repo   : updates
Summary     : Distributed File System
URL         : http://www.gluster.org/docs/index.php/GlusterFS
License     : GPLv2 or LGPLv3+
Description : GlusterFS is a distributed file-system capable of scaling to several
            : petabytes. It aggregates various storage bricks over Infiniband RDMA
            : or TCP/IP interconnect into one large parallel network file
            : system. GlusterFS is one of the most sophisticated file systems in
            : terms of features and extensibility.  It borrows a powerful concept
            : called Translators from GNU Hurd kernel. Much of the code in GlusterFS
            : is in user space and easily manageable.
            :
            : This package includes the glusterfs binary, the glusterfsd daemon and the
            : libglusterfs and glusterfs translator modules common to both GlusterFS server
            : and client framework.

# rpm -qa | grep autofs
autofs-5.0.7-54.el7.x86_64

# yum info autofs
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.usf.edu
 * epel: mirror.symnds.com
 * extras: mirror.symnds.com
 * updates: mirror.fusioncloud.co
Installed Packages
Name        : autofs
Arch        : x86_64
Epoch       : 1
Version     : 5.0.7
Release     : 54.el7
Size        : 5.0 M
Repo        : installed
>From repo   : base
Summary     : A tool for automatically mounting and unmounting filesystems
License     : GPLv2+
Description : autofs is a daemon which automatically mounts filesystems when you use
            : them, and unmounts them later when you are not using them.  This can
            : include network filesystems, CD-ROMs, floppies, and so forth.

Thanks for any ideas!

-Anthony

********************** IMPORTANT--PLEASE READ ************************ This electronic message, including its attachments, is COMPANY CONFIDENTIAL and may contain PROPRIETARY or LEGALLY PRIVILEGED information. If you are not the intended recipient, you are hereby notified that any use, disclosure, copying, or distribution of this message or any of the information included in it is unauthorized and strictly prohibited. If you have received this message in error, please immediately notify the sender by reply e-mail and permanently delete this message and its attachments, along with any copies thereof. Thank you. ************************************************************************


More information about the Gluster-users mailing list