Actions
Bug #4552
closedmountd(1m): Remove limit of FDs in RPC server
Start date:
2014-01-30
Due date:
% Done:
100%
Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:
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 }
Updated by Marcel Telka over 9 years ago
- Subject changed from mountd: Remove limit of FD in RPC server to mountd(1m): Remove limit of FDs in RPC server
Updated by Marcel Telka over 9 years ago
- Status changed from In Progress to Pending RTI
Updated by Marcel Telka over 9 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>
Actions