FreeBSD NFS server not responding to TCP SYN packets from Linux/SunOS clients

Heinrich Rebehn rebehn at ant.uni-bremen.de
Mon Oct 17 02:10:27 PDT 2005


Nicolas KOWALSKI wrote:
> Heinrich Rebehn <rebehn at ant.uni-bremen.de> writes:
> 
> 
>>Nicolas KOWALSKI wrote:
>>
>>>Eric Anderson <anderson at centtech.com> writes:
>>>
>>>
>>>>Nicolas KOWALSKI wrote:
>>>>
>>>>
>>>>>Eric Anderson <anderson at centtech.com> writes:
>>>>>
>>>>>
>>>>>>Nicolas KOWALSKI wrote:
>>>>>>
>>>>>>
>>>>>>>Mike Silbersack <silby at silby.com> writes:
>>>>>>>
>>>>>>>
>>>>>>>>Actually, there may be a quick fix for this specific machine.
>>>>>>>>If you set net.inet.tcp.keepidle to 1 minute (60*whatever
>>>>>>>>kern.hz is), that'll cause keepalive packets to be sent every
>>>>>>>>minute to an idle connection, rather than every 2 hours.  That
>>>>>>>>would kill the stuck connections much quicker.
>>>>>
>>>>>>>Unfortunately, this does not work as expected. I just tested
>>>>>>>with my workstation (Linux 2.6), with NFS filesystems mounted
>>>>>>>with TCP; when the station rebooted abruptely, mounting the same
>>>>>>>NFS filesystems hung more than 1 minute (15 minutes just
>>>>>>>now). During this hang, I saw on the server, using netstat, the
>>>>>>>nfsd process related to my workstation in ESTABLISHED state.
>>>>>>
>>>>>>Man fixmount?
>>>>>
>>>>>This is a FreeBSD-only command apparently. I did not find it on
>>>>>Linux or Solaris. It could have been useful, by calling it before
>>>>>NFS filesystems are mounted on clients, yes.
>>>>
>>>>It's available on Fedora Core 2 and 3 at least.
> 
> 
>>>So, its a non-option, because we are only using Debian Sarge and
>>>Solaris 9 UNIX workstations. :-(
>>
>>For Debian Sarge, it is in am-utils (amd automounter).
> 
> 
> Oh, thanks for the information... 
> 
> 
>>Since we are bit by the same problem - we have diskless Linux
>>clients that mount their root fs from a FreeBSD server, which
>>sometimes takes some 15 minutes - i will try fixmount next week.
> 
> 
> I just tried it without success. I call it just before
> /etc/rcS.d/S45mountnfs, and it does not help.
> 
> It looks "normal" for me, because the hang (visible on the etherreal
> trace) does not happen at mount call, but when requesting the SYN to
> the nfsd port on the server.
> 

Oh, that is bad news. But might it be possible to write a small program
on the client side that would tell the server to close the connection?
Unfortunately my network programming knowledge is very limitied, but if
someone could give me an idea, i would be willing to experiment.
After all, this is a very annoying problem :-(

--Heinrich


More information about the freebsd-fs mailing list