dfbsd nfs client - file descriptor leak

Gennady Proskurin gpr at nnz.ru
Wed Apr 23 03:50:25 PDT 2008


I have one FreeBSD nfs server, many FreeBSD nfs clients and one
DragonFly nfs client.

server:
FreeBSD 6.3-STABLE FreeBSD 6.3-STABLE #0: Thu Apr  3 15:11:39 MSD 2008
i386

dfbsd client:
DragonFly 1.12.0-RELEASE DragonFly 1.12.0-RELEASE #1: Wed Mar  5
22:16:30 MSK 2008 i386

freebsd clients - different versions from freebsd-4 to 8-current

The problem is: when accessing files from dfbsd client, nfs server
"leaks" file descriptors


Example:

Mount /usr/src on clients via nfs:
  mount_nfs -o tcp,ro,intr nfsserver:/path.../src /usr/src

Running "tar -cf - /usr/src > /dev/null" on different clients, including
dfbsd

On FreeBSD server I run shell script:
  while true
  do
        sysctl kern.openfiles
        sleep 5
  done


When running "tar..." on dfbsd client, typical output from shell script
on nfs server is:
kern.openfiles: 1738
kern.openfiles: 1775
kern.openfiles: 1820
kern.openfiles: 1861
kern.openfiles: 1902
kern.openfiles: 1967
kern.openfiles: 2047
. ..
Note continuous increasing
When kern.openfiles reaches some high value, "bad things happen" on nfs
server

Restarting nfsd on server helps:
% sysctl kern.openfiles
kern.openfiles: 3483
% sudo /etc/rc.d/nfsd stop
Stopping nfsd.
Waiting for PIDS: 85888.
% sysctl kern.openfiles
kern.openfiles: 263


When running "tar..." on any freebsd client, typical output from shell
script on nfs server is:
kern.openfiles: 305
kern.openfiles: 305
kern.openfiles: 303
kern.openfiles: 299
kern.openfiles: 300
kern.openfiles: 300
kern.openfiles: 304

All seems fine here.





More information about the Kernel mailing list