On Apr 27, 2009, at 8:43 PM, Andrew Savchenko wrote:
Hello,
On Monday 27 April 2009, Chuck Lever wrote:
On Apr 27, 2009, at 11:03 AM, Andrew Savchenko wrote:
Hello,
I have ipv6 support as a module (it may be needed in the
recent future), but currently I want ipv6 to be disabled on my
system, so I blacklisted this module. And here problems
begin...
NFSv3 works flawlessly:
# mount 172.19.0.1:/home/ftp /mnt/nfs/
but NFSv4 fails:
# mount -t nfs4 172.19.0.1:/ /mnt/nfs/
mount.nfs4: Cannot allocate memory
After modprobe ipv6 it works:
# mount -t nfs4 172.19.0.1:/ /mnt/nfs/
I recompiled nfs-utils without ipv6 support, but this doesn't
help.
Here is my /etc/exports:
/home/ftp 172.16.0.0/12
(ro,async,crossmnt,no_subtree_check,fsid=0,all_squash) \
127.0.0.1/32
(ro,async,crossmnt,no_subtree_check,fsid=0,all_squash)
I use nfs-utils-1.1.5, I tested this on both vanilla linux
kernels 2.6.28.7 and 2.6.28.9.
Have you tried this with 2.6.29?
I just tried with vanilla 2.6.29.1. Things became even worse. Now
not only NFSv4 fails to mount as usual, but NFSv3 fails too:
# mount 172.19.0.1:/home/ftp /mnt/orionis
mount.nfs: Address family not supported by protocol
And following error appears in kernel log multiple times:
RPC: failed to contact local rpcbind server (errno 5).
I attached strace -f for both mount attempts. The problem is in
mount() syscall in both cases, thus somewhere inside the kernel...
With ipv6 module loaded all works fine.
Right, this isn't an nfs-utils problem, it's an issue in the kernel
(so the strace isn't terribly informative). 2.6.29 is supposed to
have addressed this problem, but maybe you are hitting a new way that
not having ipv6.ko loaded is buggering us.
If you're building these kernels yourself, why not disable CONFIG_IPV6?
You can also try building 2.6.28 with CONFIG_SUNRPC_REGISTER_V4
disabled.
With this option disabled errno 5 (see above) disappeared from
logs, but mount fails with the same errors. Yet again, with ipv6
module loaded it works ok.
I can't reproduce here on 2.6.30-rc2, so it may be just an issue with
2.6.29. You can enable debug printks to see what the kernel thinks is
going on. Try this as root:
# rpcdebug -m nfs -s mount
# mount ....
# rpcdebug -m nfs -c
Then look in your kernel log. "rpcdebug -vh" will list the full set
of flags you can enable.
Since rpcbind also seems to be an issue, you can try this also:
# rpcdebug -m rpc -s bind
# mount ....
# rpcdebug -m rpc -c
What type of server are you attempting to mount? Linux? Solaris?
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
--
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