Hi Ryan, You can try to dtrace both nfssrv and zfs kernel modules at the server to see what exactly is failing. Especially you might be interested in rfs4_op_getattr().
HTH. On Sun, Nov 21, 2010 at 01:51:06PM +0100, Ryan John wrote: > Hi, > > I'm using openSolaris build snv_134 for my NFS server, and all my home > directories are exported via NFSv4 and auth_sys > This problem was also happening with snv_133. > Each user has his/her own zfs filesystem, and it is exported with > sharenfs='rw=*' > > My nsswitch.conf say: > passwd: files ldap > group: files ldap > automount: files ldap > The automount entry for all users looks like: > bs-home:/export/home/& > where bs-home is the name of my home server > > All users can access their home directories from Linux clients. > However, some users get an NFS4ERR_ACCESS returned when they try to logon > using a Solaris client. > I've tried openSolaris and Solaris 10/u6 clients. > I even tried setting the directory permissions to 777 - still gets an error > I know it should work, as I switched the home directories to a backup server > (also snv_134), and I don't get an error. > > Snooping a good login looks like: (bs-ssvr07-s is the home server) > 23 0.03542 bs-sparcsvr02-z1.ethz.ch -> bs-ssvr07-s.ethz.ch NFS C 4 (secinfo > ) PUTROOTFH LOOKUP export LOOKUP home SECINFO ryanj > 24 0.00027 bs-ssvr07-s.ethz.ch -> bs-sparcsvr02-z1.ethz.ch NFS R 4 (secinfo > ) NFS4_OK PUTROOTFH NFS4_OK LOOKUP NFS4_OK LOOKUP NFS4_OK SECINFO NFS4_OK > AUTH_SYS > 25 0.00064 bs-sparcsvr02-z1.ethz.ch -> bs-ssvr07-s.ethz.ch NFS C 4 (mount > ) PUTROOTFH GETFH LOOKUP export GETFH GETATTR c8000167 0 LOOKUP home > GETFH GETATTR c8000167 0 LOOKU... > 26 0.00015 bs-ssvr07-s.ethz.ch -> bs-sparcsvr02-z1.ethz.ch NFS R 4 (mount > ) NFS4_OK PUTROOTFH NFS4_OK GETFH NFS4_OK FH=3FAA LOOKUP NFS4_OK GETFH > NFS4_OK FH=B840 GETATTR NFS4_OK LOOK... > 27 0.00118 bs-sparcsvr02-z1.ethz.ch -> bs-ssvr07-s.ethz.ch NFS C 4 (fsinfo > ) PUTFH FH=83BF GETATTR 20e00000 1c00 > 28 0.00017 bs-ssvr07-s.ethz.ch -> bs-sparcsvr02-z1.ethz.ch NFS R 4 (fsinfo > ) NFS4_OK PUTFH NFS4_OK GETATTR NFS4_OK > 29 0.00088 bs-sparcsvr02-z1.ethz.ch -> bs-ssvr07-s.ethz.ch NFS C 4 (getattr > ) PUTFH FH=83BF GETATTR 10011a b0a23a > 30 0.00019 bs-ssvr07-s.ethz.ch -> bs-sparcsvr02-z1.ethz.ch NFS R 4 (getattr > ) NFS4_OK PUTFH NFS4_OK GETATTR NFS4_OK > 31 0.01510 bs-sparcsvr02-z1.ethz.ch -> bs-ssvr07-s.ethz.ch NFS C 4 (access > ) PUTFH FH=83BF ACCESS rd,lk,mo,ext,dl GETATTR 10011a b0a23a > 32 0.00019 bs-ssvr07-s.ethz.ch -> bs-sparcsvr02-z1.ethz.ch NFS R 4 (access > ) NFS4_OK PUTFH NFS4_OK ACCESS NFS4_OK Supp=rd,lk,mo,ext,dl > Allow=rd,lk,mo,ext,dl GETATTR NFS4_OK > > A failed login looks like: (Gets NFS4ERR_ACCESS at line 30) > 23 0.03499 bs-sparcsvr02-z1.ethz.ch -> bs-ssvr07-s.ethz.ch NFS C 4 (secinfo > ) PUTROOTFH LOOKUP export LOOKUP home SECINFO bs-ryanj > 24 0.00022 bs-ssvr07-s.ethz.ch -> bs-sparcsvr02-z1.ethz.ch NFS R 4 (secinfo > ) NFS4_OK PUTROOTFH NFS4_OK LOOKUP NFS4_OK LOOKUP NFS4_OK SECINFO NFS4_OK > AUTH_SYS > 25 0.01097 bs-sparcsvr02-z1.ethz.ch -> bs-ssvr07-s.ethz.ch NFS C 4 (mount > ) PUTROOTFH GETFH LOOKUP export GETFH GETATTR c8000167 0 LOOKUP home > GETFH GETATTR c8000167 0 LOOKU... > 26 0.00024 bs-ssvr07-s.ethz.ch -> bs-sparcsvr02-z1.ethz.ch NFS R 4 (mount > ) NFS4_OK PUTROOTFH NFS4_OK GETFH NFS4_OK FH=3FAA LOOKUP NFS4_OK GETFH > NFS4_OK FH=B840 GETATTR NFS4_OK LOOK... > 27 0.00111 bs-sparcsvr02-z1.ethz.ch -> bs-ssvr07-s.ethz.ch NFS C 4 (fsinfo > ) PUTFH FH=A38E GETATTR 20e00000 1c00 > 28 0.00011 bs-ssvr07-s.ethz.ch -> bs-sparcsvr02-z1.ethz.ch NFS R 4 (fsinfo > ) NFS4_OK PUTFH NFS4_OK GETATTR NFS4_OK > 29 0.00078 bs-sparcsvr02-z1.ethz.ch -> bs-ssvr07-s.ethz.ch NFS C 4 (getattr > ) PUTFH FH=A38E GETATTR 10011a b0a23a > 30 0.00010 bs-ssvr07-s.ethz.ch -> bs-sparcsvr02-z1.ethz.ch NFS R 4 (getattr > ) NFS4ERR_ACCESS PUTFH NFS4_OK GETATTR NFS4ERR_ACCESS > 31 0.00109 bs-sparcsvr02-z1.ethz.ch -> bs-ssvr07-s.ethz.ch NFS C 4 (access > ) PUTFH FH=A38E ACCESS rd,lk,mo,ext,dl GETATTR 10011a b0a23a > 32 0.00013 bs-ssvr07-s.ethz.ch -> bs-sparcsvr02-z1.ethz.ch NFS R 4 (access > ) NFS4ERR_ACCESS PUTFH NFS4_OK ACCESS NFS4_OK Supp=rd,lk,mo,ext,dl > Allow=rd,lk,mo,ext,dl GETATTR NFS4ERR_ACCESS > > I don't know if there is any difference between these users. > > I've attached the full snoop output. > Anyone got any ideas? > > Regards and thanks in advance > John Ryan > > > > > _______________________________________________ > nfs-discuss mailing list > [email protected] -- Marcel Telka RPE, Systems _______________________________________________ nfs-discuss mailing list [email protected]
