NFS host export restrictions crash mountd - FBSD 6.1 & 6.2-PRE

Lee Damon nomad at ssli-mail.ee.washington.edu
Wed Nov 29 16:24:09 PST 2006


I have several FBSD based file servers.  This problem shows up in every
version of 6.x that I've tried.

All of the file servers export multiple (anywhere from 15 to 200+)
file systems.  Listing host or netgroup restrictions on more than a
few lines in /etc/exports causes mountd to stop responding to requests
(even showmount) and eventually die.

It doesn't matter if the hosts are individually enumerated on each
line, listed in a netgroup accessed via /etc/netgroup or listed in a
netgroup obtained from NIS.  It does not matter if the hosts are listed
by shortname or FQDN.  It also doesn't matter if the hosts are in DNS
or /etc/hosts.

I have a test box with 261 filesystems exported.  I then add a netgroup
restriction (currently ~15 hosts, I've seen this problem with only 8
listed) to the very last line and nothing goes wrong.  I add it to one
more and then I run mountd -r -d. I see a bunch of "got host" lines then:

	mountd: getting mount list
	mountd: here we go

implying it is working.  I can add it to several lines and things
work. Eventually however, a showmount query from another host says:

	: || nomad at crow ~ [66] ; showmount -e ente 
	rpc mount export: RPC: Can't decode result

After adding the restriction to a few more exports lines "mountd -d"
gets part way through enumerating the hosts then just stops, but the
daemon is still running (not responding to showmount requests, mind you).

Adding yet more of them eventually leads to a "Broken pipe" being spat
out as the daemon exist (no other information presented). I should
note the daemon exists when I do a showmount -e host at it, not when it
is reloaded.

After this exit I restart the daemon (-r -d or just -d) it prints the
"here we go" message and sits waiting for the first query.  As soon as
I do a showmount it exits with the same broken pipe message.

The failure happens with considerably fewer restricted exports if I have
200 hosts in the export restriction so it looks like it's smashing a
buffer somewhere.

nomad


More information about the freebsd-bugs mailing list