Project

General

Profile

Bug #4552

mountd(1m): Remove limit of FDs in RPC server

Added by Marcel Telka about 7 years ago. Updated about 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
nfs - NFS server and client
Start date:
2014-01-30
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

mountd(1m) is affected by this (cite from rpc_control(3nsl) man page):

     By default, RPC servers are limited to  a  maximum  of  1024
     file  descriptors  or  connections due to limitations in the
     historical       interfaces       svc_fdset(3NSL)        and
     svc_getreqset(3NSL).  Applications  written  to use the pre-
     ferred     interfaces      of      svc_pollfd(3NSL)      and
     svc_getreq_poll(3NSL)  can  use  an unlimited number of file
     descriptors.  Setting info to point to  a  non-zero  integer
     and  op to RPC_SVC_USE_POLLFD removes the limitation.

We saw under high load that mountd(1m) started to reject new incoming connections because of this limit. The limit is enforced here in do_accept():

790    if (RPC_FD_NOTIN_FDSET(destfd)) {
791        (void) syslog(LOG_ERR, errstring, do_accept_str,
792                        svc_vc_fderr);
793        (void) t_close(destfd);
794        (void) t_snddis(srcfd, tcp);
795        errno = EBADF;
796        t_errno = TBADF;
797        return;
798    }
#1

Updated by Marcel Telka about 7 years ago

  • Subject changed from mountd: Remove limit of FD in RPC server to mountd(1m): Remove limit of FDs in RPC server
#2

Updated by Marcel Telka about 7 years ago

  • Status changed from In Progress to Pending RTI
#3

Updated by Marcel Telka about 7 years ago

  • Status changed from Pending RTI to Resolved
  • % Done changed from 0 to 100
  • Tags deleted (needs-triage)
commit 2f4166839a727be3768d140a622e914703414e34
Author:     Marcel Telka <marcel.telka@nexenta.com>
AuthorDate: Thu Jan 30 19:15:42 2014 +0100
Commit:     Richard Lowe <richlowe@richlowe.net>
CommitDate: Mon Feb 3 13:16:10 2014 -0500

    4552 mountd(1m): Remove limit of FDs in RPC server
    Reviewed by: Michael Tsymbalyuk <michael.tsymbalyuk@nexenta.com>
    Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
    Approved by: Richard Lowe <richlowe@richlowe.net>

Also available in: Atom PDF