Return-Path: Received: from mail-wm0-f44.google.com ([74.125.82.44]:36101 "EHLO mail-wm0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751251AbcGRNpK (ORCPT ); Mon, 18 Jul 2016 09:45:10 -0400 Received: by mail-wm0-f44.google.com with SMTP id f126so104250564wma.1 for ; Mon, 18 Jul 2016 06:45:09 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20160713132601.GA8856@fieldses.org> References: <20160713132601.GA8856@fieldses.org> From: Thomas Gambier Date: Mon, 18 Jul 2016 15:44:48 +0200 Message-ID: Subject: Re: open a file in 0100444 mode in NFSv4 may fail To: "J. Bruce Fields" Cc: linux-nfs@vger.kernel.org Content-Type: multipart/mixed; boundary=001a1145b5f22b5c4c0537e92d3b Sender: linux-nfs-owner@vger.kernel.org List-ID: --001a1145b5f22b5c4c0537e92d3b Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello, thanks for your answer. See my comments below. On Wed, Jul 13, 2016 at 3:26 PM, J. Bruce Fields wro= te: > On Mon, Jul 11, 2016 at 07:40:11PM +0200, Thomas Gambier wrote: >> Hello, >> >> I just discovered a problem with NFSv4 file system. I was using TCL >> scripts that were doing some file manipulation (mkdir, copy, ...) on >> my NFSv4 file system and sometimes the scripts failed with "permission >> denied" error. >> >> I ran strace and I found that the system call returning the error was: >> open("d1/in.txt", O_WRONLY|O_CREAT|O_TRUNC, 0100444) =3D -1 EACCES >> (Permission denied) > > Is that even allowed? The open(2) man page says posix leaves behavior > in that case unspecified, and doesn't say anything I can find about > Linux behavior in this case. > You're right. I will send a mail to TCL mailing list to know why they put this flag in the open call. > I guess it would be nicer for client or server to do something > predictable, though. First steps might be to confirm what happens other > filesystems, then do a network trace (watch the traffic in wireshark) to > see if it's the client rejecting this open, or the client passing > through that bit in the mode and the server returning the error. I agree. For other filesystem, I only tested with ext4 which works fine. Let me know if you want me to test specific filesystems. I attach the wireshark capture of a test with 8 open call working fine and the 9th one failing. For me, it seems the activity on the network is exactly the same for the failing case (same call from client to server and same answer from server to client). It would mean that the client itself is messing things up... Regards. Thomas. > > --b. > >> >> And indeed the error was happening only when TCL wanted to copy files >> where permission were 444 (user don't have write permission). >> >> You can reproduce the error with the small C code attached. I tested >> with a fresh install of xubuntu 16.04 for both NFS client and NFS >> server and it fails. You can find all the logs and the version info >> attached. >> >> It seems that the error is not happening when we are using mode =3D 444 >> instead of mode =3D 0100444 (no S_IFREG flag). >> >> It seems a bug in NFS to me since it doesn't happen in NFSv3, and the >> error is random with NFSv4. Also I found that the error doesn't happen >> at all with NFSv4 if both server and client are on Ubuntu 14.04. >> >> Let me know if you need more information. Also let me know if I should >> open a bug on kernel bugzilla. >> >> Thank you. >> >> Regards. >> >> Thomas. > >> sigma@VM-tomo:~$ uname -a >> Linux VM-tomo 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 20= 16 x86_64 x86_64 x86_64 GNU/Linux >> >> >> sigma@VM-tomo:~$ sudo mount testNFS:/export /mnt >> >> >> sigma@VM-tomo:~$ mount >> sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) >> proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) >> udev on /dev type devtmpfs (rw,nosuid,relatime,size=3D230708k,nr_inodes= =3D57677,mode=3D755) >> devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=3D5,mode= =3D620,ptmxmode=3D000) >> tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=3D50028k,mode= =3D755) >> /dev/sda1 on / type ext4 (rw,relatime,errors=3Dremount-ro,data=3Dordered= ) >> securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noex= ec,relatime) >> tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) >> tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=3D51= 20k) >> tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=3D755) >> cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,rel= atime,xattr,release_agent=3D/lib/systemd/systemd-cgroups-agent,name=3Dsyste= md,nsroot=3D/) >> pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) >> cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec= ,relatime,cpu,cpuacct,nsroot=3D/) >> cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,= relatime,perf_event,nsroot=3D/) >> cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,rela= time,cpuset,nsroot=3D/) >> cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,rel= atime,freezer,nsroot=3D/) >> cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,n= oexec,relatime,net_cls,net_prio,nsroot=3D/) >> cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relati= me,pids,nsroot=3D/) >> cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,rel= atime,devices,nsroot=3D/) >> cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,rela= time,memory,nsroot=3D/) >> cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,rel= atime,hugetlb,nsroot=3D/) >> cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relat= ime,blkio,nsroot=3D/) >> systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=3D24,p= grp=3D1,timeout=3D0,minproto=3D5,maxproto=3D5,direct) >> debugfs on /sys/kernel/debug type debugfs (rw,relatime) >> mqueue on /dev/mqueue type mqueue (rw,relatime) >> hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime) >> fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime) >> tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=3D5002= 8k,mode=3D700,uid=3D1000,gid=3D1000) >> gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,= relatime,user_id=3D1000,group_id=3D1000) >> testNFS:/export on /mnt type nfs4 (rw,relatime,vers=3D4.0,rsize=3D262144= ,wsize=3D262144,namlen=3D255,hard,proto=3Dtcp,port=3D0,timeo=3D600,retrans= =3D2,sec=3Dsys,clientaddr=3D172.27.64.79,local_lock=3Dnone,addr=3D172.27.64= .74) >> >> >> sigma@VM-tomo:~$ gcc create.c -o create >> sigma@VM-tomo:~$ cd /mnt >> sigma@VM-tomo:/mnt$ strace -v ~/create >> execve("/home/sigma/create", ["/home/sigma/create"], ["XDG_VTNR=3D7", "L= C_PAPER=3Dfr_FR.UTF-8", "LC_ADDRESS=3Dfr_FR.UTF-8", "XDG_SESSION_ID=3Dc1", = "XDG_GREETER_DATA_DIR=3D/var/lib/li"..., "LC_MONETARY=3Dfr_FR.UTF-8", "CLUT= TER_IM_MODULE=3D", "QT_STYLE_OVERRIDE=3Dgtk", "SESSION=3Dxubuntu", "GLADE_P= IXMAP_PATH=3D:", "XDG_MENU_PREFIX=3Dxfce-", "SHELL=3D/bin/bash", "TERM=3Dxt= erm", "QT_LINUX_ACCESSIBILITY_ALWAYS_ON"..., "WINDOWID=3D52428804", "LC_NUM= ERIC=3Dfr_FR.UTF-8", "OLDPWD=3D/home/sigma", "UPSTART_SESSION=3Dunix:abstra= ct=3D/c"..., "GNOME_KEYRING_CONTROL=3D", "USER=3Dsigma", "LS_COLORS=3Drs=3D= 0:di=3D01;34:ln=3D01;36"..., "LC_TELEPHONE=3Dfr_FR.UTF-8", "CLUTTER_BACKEND= =3Dx11", "QT_ACCESSIBILITY=3D1", "XDG_SESSION_PATH=3D/org/freedeskto"..., "= GLADE_MODULE_PATH=3D:", "XDG_SEAT_PATH=3D/org/freedesktop/D"..., "SSH_AUTH_= SOCK=3D/run/user/1000/key"..., "DEFAULTS_PATH=3D/usr/share/gconf/x"..., "SE= SSION_MANAGER=3Dlocal/VM-tomo:@/"..., "XDG_CONFIG_DIRS=3D/etc/xdg/xdg-xub".= .., "DESKTOP_SESSION=3Dxubuntu", "PATH=3D/usr/local/sbin:/usr/local/"..., "= QT_IM_MODULE=3D", "LC_IDENTIFICATION=3Dfr_FR.UTF-8", "XDG_SESSION_TYPE=3Dx1= 1", "PWD=3D/mnt", "JOB=3Ddbus", "XMODIFIERS=3D", "GNOME_KEYRING_PID=3D", "L= ANG=3Den_US.UTF-8", "GDM_LANG=3Den_US", "MANDATORY_PATH=3D/usr/share/gconf/= "..., "LC_MEASUREMENT=3Dfr_FR.UTF-8", "IM_CONFIG_PHASE=3D1", "GDMSESSION=3D= xubuntu", "SESSIONTYPE=3D", "SHLVL=3D1", "HOME=3D/home/sigma", "XDG_SEAT=3D= seat0", "LANGUAGE=3Den_US", "UPSTART_INSTANCE=3D", "GTK_OVERLAY_SCROLLING= =3D0", "UPSTART_EVENTS=3Dstarted xsession", "XDG_SESSION_DESKTOP=3Dxubuntu"= , "LOGNAME=3Dsigma", "DBUS_SESSION_BUS_ADDRESS=3Dunix:ab"..., "XDG_DATA_DIR= S=3D/usr/share/xubuntu"..., "QT4_IM_MODULE=3D", "LESSOPEN=3D| /usr/bin/less= pipe %s", "INSTANCE=3D", "UPSTART_JOB=3Dstartxfce4", "XDG_RUNTIME_DIR=3D/ru= n/user/1000", "DISPLAY=3D:0.0", "GLADE_CATALOG_PATH=3D:", "XDG_CURRENT_DESK= TOP=3DXFCE", "GTK_IM_MODULE=3D", "LESSCLOSE=3D/usr/bin/lesspipe %s %"..., "= LC_TIME=3Dfr_FR.UTF-8", "LC_NAME=3Dfr_FR.UTF-8", "XAUTHORITY=3D/home/sigma/= .Xauthori"..., "COLORTERM=3Dxfce4-terminal", "_=3D/usr/bin/strace"]) =3D 0 >> brk(NULL) =3D 0x8c7000 >> access("/etc/ld.so.nohwcap", F_OK) =3D -1 ENOENT (No such file or d= irectory) >> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)= =3D 0x7ff533ae6000 >> access("/etc/ld.so.preload", R_OK) =3D -1 ENOENT (No such file or d= irectory) >> open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) =3D 3 >> fstat(3, {st_dev=3Dmakedev(8, 1), st_ino=3D273511, st_mode=3DS_IFREG|064= 4, st_nlink=3D1, st_uid=3D0, st_gid=3D0, st_blksize=3D4096, st_blocks=3D152= , st_size=3D75920, st_atime=3D2016/07/11-19:24:38.838829302, st_mtime=3D201= 6/07/11-19:24:38.734829064, st_ctime=3D2016/07/11-19:24:38.734829064}) =3D = 0 >> mmap(NULL, 75920, PROT_READ, MAP_PRIVATE, 3, 0) =3D 0x7ff533ad3000 >> close(3) =3D 0 >> access("/etc/ld.so.nohwcap", F_OK) =3D -1 ENOENT (No such file or d= irectory) >> open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) =3D 3 >> read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\t\2\0\0\0\0\0".= .., 832) =3D 832 >> fstat(3, {st_dev=3Dmakedev(8, 1), st_ino=3D3412686, st_mode=3DS_IFREG|07= 55, st_nlink=3D1, st_uid=3D0, st_gid=3D0, st_blksize=3D4096, st_blocks=3D36= 48, st_size=3D1864888, st_atime=3D2016/07/11-18:13:54.616900188, st_mtime= =3D2016/04/15-00:16:46, st_ctime=3D2016/07/11-18:07:12.442702138}) =3D 0 >> mmap(NULL, 3967488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0= ) =3D 0x7ff5334fa000 >> mprotect(0x7ff5336ba000, 2093056, PROT_NONE) =3D 0 >> mmap(0x7ff5338b9000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|= MAP_DENYWRITE, 3, 0x1bf000) =3D 0x7ff5338b9000 >> mmap(0x7ff5338bf000, 14848, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|= MAP_ANONYMOUS, -1, 0) =3D 0x7ff5338bf000 >> close(3) =3D 0 >> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)= =3D 0x7ff533ad2000 >> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)= =3D 0x7ff533ad1000 >> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)= =3D 0x7ff533ad0000 >> arch_prctl(ARCH_SET_FS, 0x7ff533ad1700) =3D 0 >> mprotect(0x7ff5338b9000, 16384, PROT_READ) =3D 0 >> mprotect(0x600000, 4096, PROT_READ) =3D 0 >> mprotect(0x7ff533ae8000, 4096, PROT_READ) =3D 0 >> munmap(0x7ff533ad3000, 75920) =3D 0 >> open("testfile0.txt", O_WRONLY|O_CREAT|O_TRUNC, 0100444) =3D 3 >> open("testfile1.txt", O_WRONLY|O_CREAT|O_TRUNC, 0100444) =3D 4 >> open("testfile2.txt", O_WRONLY|O_CREAT|O_TRUNC, 0100444) =3D -1 EACCES (= Permission denied) >> dup(2) =3D 5 >> fcntl(5, F_GETFL) =3D 0x8002 (flags O_RDWR|O_LARGE= FILE) >> brk(NULL) =3D 0x8c7000 >> brk(0x8e8000) =3D 0x8e8000 >> fstat(5, {st_dev=3Dmakedev(0, 14), st_ino=3D7, st_mode=3DS_IFCHR|0620, s= t_nlink=3D1, st_uid=3D1000, st_gid=3D5, st_blksize=3D1024, st_blocks=3D0, s= t_rdev=3Dmakedev(136, 4), st_atime=3D2016/07/11-19:31:12.028895038, st_mtim= e=3D2016/07/11-19:31:12.028895038, st_ctime=3D2016/07/11-18:35:39.028895038= }) =3D 0 >> write(5, "Open failed\n", 12Open failed >> ) =3D 12 >> write(5, ": Permission denied\n", 20: Permission denied >> ) =3D 20 >> close(5) =3D 0 >> write(2, "Error creating testfile2.txt\n", 29Error creating testfile2.tx= t >> ) =3D 29 >> exit_group(1) =3D ? >> +++ exited with 1 +++ >> > >> #include >> #include >> #include >> >> >> int main() >> { >> int filedesc, i; >> char filename[100]; >> >> for (i=3D0; i<1000; i++) >> { >> sprintf(filename, "testfile%d.txt", i); >> >> filedesc =3D open(filename, O_WRONLY|O_CREAT|O_TRUNC, 0100444); >> if(filedesc < 0) >> { >> perror("Open failed\n"); >> fprintf(stderr, "Error creating %s\n", filename); >> return 1; >> } >> } >> >> return 0; >> } >> > >> sigma@testNFS:~$ uname -a >> Linux testNFS 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 20= 16 x86_64 x86_64 x86_64 GNU/Linux >> >> >> sigma@testNFS:~$ apt-cache policy nfs-common >> nfs-common: >> Installed: 1:1.2.8-9ubuntu12 >> Candidate: 1:1.2.8-9ubuntu12 >> Version table: >> *** 1:1.2.8-9ubuntu12 500 >> 500 http://fr.archive.ubuntu.com/ubuntu xenial/main amd64 Packag= es >> 100 /var/lib/dpkg/status >> >> >> sigma@testNFS:~$ apt-cache policy nfs-kernel-server >> nfs-kernel-server: >> Installed: 1:1.2.8-9ubuntu12 >> Candidate: 1:1.2.8-9ubuntu12 >> Version table: >> *** 1:1.2.8-9ubuntu12 500 >> 500 http://fr.archive.ubuntu.com/ubuntu xenial/main amd64 Packag= es >> 100 /var/lib/dpkg/status >> >> >> sigma@testNFS:~$ cat /etc/exports >> # /etc/exports: the access control list for filesystems which may be exp= orted >> # to NFS clients. See exports(5). >> # >> # Example for NFSv2 and NFSv3: >> # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync= ,no_subtree_check) >> # >> # Example for NFSv4: >> # /srv/nfs4 gss/krb5i(rw,sync,fsid=3D0,crossmnt,no_subtree_check) >> # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) >> # >> >> /export 172.27.0.0/255.255.0.0(rw,fsid=3D1,async,insecure,no_subtree_ch= eck) >> >> >> sigma@testNFS:~$ ls -al /export >> total 12 >> drwxrwxrwx 3 root root 4096 juil. 11 18:58 . >> drwxr-xr-x 25 root root 4096 juil. 11 18:55 .. >> >> >> sigma@testNFS:~$ sudo exportfs -v >> [sudo] password for sigma: >> /export 172.27.0.0/255.255.0.0(rw,async,wdelay,insecure,ro= ot_squash,no_subtree_check,fsid=3D1,sec=3Dsys,rw,root_squash,no_all_squash) >> >> >> > --001a1145b5f22b5c4c0537e92d3b Content-Type: application/octet-stream; name="NFS_traffic.pcapng" Content-Disposition: attachment; filename="NFS_traffic.pcapng" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iqs31mgn0 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 BQAIAAAAAAAAAAAAAAAAAGwAAAA= --001a1145b5f22b5c4c0537e92d3b--