Re: Problems with crossmnt since 1.2.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 01, 2010 at 10:20:02PM -0500, J. Bruce Fields wrote:
> On Mon, Mar 01, 2010 at 10:13:06PM +0100, Iustin Pop wrote:
> > On Mon, Mar 01, 2010 at 03:40:10PM -0500, J. Bruce Fields wrote:
> > > On Sun, Feb 28, 2010 at 11:06:43AM +0100, Iustin Pop wrote:
> > > > Since nfs-utils 1.2.1, there are some problems with crossmnt usage. See
> > > > Debian bug http://bugs.debian.org/567546, but in short the problem seems
> > > > to be that sub-mounts (/a/b) take the top-level mount (/a) options
> > > > instead of their own, due to a bug in how mountd generates the crossmnt
> > > > subexports.
> > > > 
> > > > I checked that reverting the write_secinfo changes in commit
> > > > bc0a6ab03089fc1ea4fea26ed9635c2cc918b01b fix the issue, but that might
> > > > only be a side effect, not the actual cause.
> > > > 
> > > > A short test:
> > > > - have /a and /a/b exported, with different flags (e.g. ro on /a, rw on
> > > >   /a/b)
> > > > - restart the mountd, clear exports, etc.
> > > > - try a mount on the client of /a/b, it gets readonly
> > > > - umount & remount, it's now r/w
> > > > - however, clearing the kernel export table (exportfs -f), makes the
> > > >   next mount again get read-only 
> > > > 
> > > > Disabling crossmnt fixes the issue completely, so I would venture to
> > > > guess that the subexports creation code has some issue, but I don't know
> > > > enough of this to be able to debug it.
> > > 
> > > Thanks for the report.  What's the latest nfs-utils version you've
> > > tested?
> > 
> > 1.2.2 - which is broken, as is 1.2.1. 1.2.0 works, because of the above
> > commit which, again, I presume un-hides the problem.
> > 
> > Also there are reports of older versions being broken.
> > 
> > > On a quick skim of the latest code I see one clear bug
> > > (path[strlen(path)] will never be '/'!), but that should have caused
> > > crossmnt to never get enforced at all rather than to override anything.
> > > 
> > > Could you retest the latest from the upstream git, with this patch
> > > applied, and see if the problem is still present?
> > 
> > I've tested right now with
> > git://git.linux-nfs.org/projects/steved/nfs-utils.git (I hope this is the right
> > upstream repo) plus the patch - still happens, no change.
> > 
> > One thing that is interesting is that only the first mount gets the
> > wrong options, if the client unmounts and remounts (at this point the
> > exports are in the kernel's cache) the options are right. As long as the
> > kernel cache is populated, the options are right, if one clears the
> > cache, the first mount will be wrong. Maybe this helps, I find it an
> > interesting behaviour.
> > 
> > > Then if it is I'll try to go reproduce it myself....
> > 
> > For reference, here is the exports file I use for tests:
> > /srv/nfs       client(sec=sys,ro,sync,fsid=0,subtree_check,crossmnt)
> > /srv/nfs/homes client(sec=sys,rw,sync,subtree_check)
> > 
> > And here is the fstab entry on the client:
> > server:/srv/nfs/homes /home     nfs     noauto,hard,bg,sec=sys,proto=tcp 0 0
> > 
> > The rest of the tools on server and client are Debian's nfs-utils 1.2.1
> > (they have just a few, very trivial and unrelated, patches). The problem
> > manifests (in my case) with both nfsv3/sec=sys and nfsv4/sec=krb*.
> 
> The loop in utils/mountd/cache.c:cache_export_ent() looks extremely
> suspicious: it seems to be populating the kernel's export cache with
> parameters taken from the parent export.  I can't see why that's
> necessary at all--those exports can be looked up on demand later when
> they're needed.  Something as simple as the following might help?
> (Totally untested!)

Sorry for the delayed response. I can confirm this solves my test case. I get
the right mount options in both the "mount directly the sub-directory" case,
and in the "mount parent and access the sub-directory via the crossmnt feature"
case.

thanks!
iustin
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux