[illumos-Developer] Assert on mountd.c

Marcelo Leal sunos.x86 at gmail.com
Thu Jun 30 08:40:40 PDT 2011


Hello there,
 Doing some tests with the NFS server, i was using a environment
without DNS or reverse names. So i did see the old /core.mountd.xxxx
files being created.
 Looking at the ::status of that core files i have saw the following:

# mdb /core.mountd.1309217945
Loading modules: [ libc.so.1 libuutil.so.1 ld.so.1 ]
> ::status
debugging core file of mountd (32-bit) from hm5699
file: /usr/lib/nfs/mountd
initial argv: /usr/lib/nfs/mountd
threading model: native threads
status: process terminated by SIGABRT (Abort), pid=7145 uid=0 code=-1
panic message: Assertion failed: *serv != NULL, file mountd.c, line 762

That 762 line is on the "getclientsnames_common" routine (that was
separated from the "getclientsnames"). This new generic function has
an:

 assert(*serv != NULL);

before returning 0. As i said, the old code has no assertion on it,
and i think that old implementation was "right". Because there is a
possibility of a system not be able to resolve a name
from the IP address using a set of name services, and as the NFSv3
protocol requires for the NLM protocol, denies the mount request. But
the problem is the abort of the process, what causes a DoS on the NFS
services.
 IIRC we had a discussion on OSOL mailing lists about even change this
behaviour on *solaris servers to no obligate a system to have a
reverse DNS entry. I don't remember what was the end of this
discussion...
 So, am i missing something, or we need to remove this assert?

 Thanks a lot for your time!


 Leal
[ http://www.eall.com.br/blog ]
-------=- pOSix rules -=-------



More information about the Developer mailing list