[illumos-Developer] Assert on mountd.c

Marcelo Leal sunos.x86 at gmail.com
Thu Jun 30 10:09:34 PDT 2011


 Thanks Eric!

 How can we fix that for the communjity branch? Looking at the old
code would be a matter of remove this assert. But seems like there is
a failure path (what i think should return "permission denied").
 I don't know what is the proccess to integrate on illumos, but seems
like people are asking for reviews here on the mailing list?
 Could you post the patch or something?
 Thanks again!

 Leal

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



2011/6/30 Eric Schrock <eric.schrock at delphix.com>:
> Yes, it's a bug.  This is something George fixed in our illumos branch;
> we're working on making those changes available.  Our change did not remove
> the assert (which is valid), but causes us to fall through the failure path
> (which resolve by address) if __netdir_getbyaddr_nosrv() succeeds but
> returns a NULL server.
> - Eric
>
> On Thu, Jun 30, 2011 at 11:40 AM, Marcelo Leal <sunos.x86 at gmail.com> wrote:
>>
>> 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 -=-------
>>
>> _______________________________________________
>> Developer mailing list
>> Developer at lists.illumos.org
>> http://lists.illumos.org/m/listinfo/developer
>
>
>
> --
> Eric Schrock
> Delphix
> 275 Middlefield Road, Suite 50
> Menlo Park, CA 94025
> http://www.delphix.com
>



More information about the Developer mailing list