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

Bug#669314: [squeeze -> wheezy regression] nfs: kernel forces trailing slash for export in /proc/self/mounts



reassign 669314 src:linux-2.6 3.2.15-1
found 669314 linux-2.6/3.3.2-1~experimental.1
quit

Hi,

Chris Hiestand wrote:

> I expect /proc/self/mounts to show (notice no trailing slash on the export):
> nfsserver:/srv/ubuntu-32 /mnt/ubuntu-32 nfs ro,nosuid,nodev,noatime,vers=3,rsize=32768,wsize=32768,namlen=255,soft,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=198.202.1.1,mountvers=3,mountport=41576,mountproto=tcp,local_lock=none,addr=198.202.1.1 0 0
>
> But instead in /proc/self/mounts I get (notice the trailing slash):
> nfsserver:/srv/ubuntu-32/ /mnt/ubuntu-32 nfs ro,nosuid,nodev,noatime,vers=3,rsize=32768,wsize=32768,namlen=255,soft,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=198.202.1.1,mountvers=3,mountport=41576,mountproto=tcp,local_lock=none,addr=198.202.1.1 0 0
>
> This simple change has a lot of implications because lots of things
> parse /proc/self/mounts, for example mount.nfs and umount.nfs
>
> user@hostname:/proc/self$ sudo umount.nfs nfsserver:/srv/ubuntu-32
> umount.nfs: nfsserver:/srv/ubuntu-32: not found
>
> And if you run "sudo mount -va", mount will not recognize that the
> fstab mounts have already been mounted; mounting all mounts twice on
> the same mount point. This quickly gets messy.
[...]
> As a workaround, I can boot into the squeeze kernel,
> linux-image-2.6.32-5-amd64, and the problem no longer reproduces.
> This is why I believe it is a problem in the kernel and not in
> nfs-common.

Laurent Désarmes wrote:

> I've been able to reproduce this bug.
> It doesn't happen when using nfs4, it does with nfsvers=2 or
> nfsvers=3.

Thanks for a clear report, and sorry for the slow response.

I suspect this behavior change was introduced by v2.6.39-rc1~460^2~3
(vfs: new superblock methods to override /proc/*/mount{s,info},
2011-03-16).  Can you confirm, like so?

 0. prerequisites:

	apt-get install git build-essential

 1. get the kernel history, if you don't already have it:

	git clone \
	  git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

 2. configure, build, test:

	cd linux
	git checkout v2.6.39-rc1~460^2~3
	git checkout HEAD^
	cp /boot/config-$(uname -r) .config; # current configuration
	scripts/config --disable DEBUG_INFO
	make localmodconfig; # optional: minimize configuration
	make deb-pkg; # optionally with -j<num> for parallel build
	dpkg -i ../<name of package>; # as root
	reboot
	... test test test ...

 3. Hopefully it does not reproduce the bug.  So try the patch:

	cd linux
	git checkout v2.6.39-rc1~460^2~3
	make deb-pkg; # maybe with -j4
	dpkg -i ../<name of package>; # as root
	reboot
	... test test test ...

An alternative way to confirm would be to try packages from before and
after that change from snapshot.debian.org.

I suspect that commit was just preparation for removing get_sb() and
was not supposed to change behavior, though I'm not sure.

Hope that helps,
Jonathan



Reply to: