Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Mar 2014 11:58:16 -0400
From:      Ryan Stone <rysto32@gmail.com>
To:        "freebsd-fs@freebsd.org" <freebsd-fs@freebsd.org>
Subject:   Is the NFS Replay Cache needed for correctness with TCP mounts?
Message-ID:  <CAFMmRNxmEupSvG4S=3p=pH1Yoap0Q_7HCD=ZWvdVTukeyH62Lw@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
My understanding of the NFS replay cache is that it's used so that the
NFS server can avoid trying non-idempotent requests twice if a it
handles a retransmitted request (because the response to the first
request was lost in transmit, for example).  Is this really only
needed for UDP mounts?  I would expect TCP mounts to not have the
problem because the TCP layer should handle the retransmits and the
NFS code should never see the same request twice.  Is this correct?


I ask because I have an NFS server (using the default legacy NFS
implementation) running FreeBSD 8.2 that is having problems with
entries in the replay cache becoming badly corrupted, leading to mbuf
leaks and system crashes.  I know that the NFS code has been rewritten
as of FreeBSD 9 so hopefully the issue is fixed in future versions,
but for the short term I'm not able to upgrade.  I control the clients
and I know that they all use TCP mounts, so I was wondering if
patching the server to disable the replay cache would be a plausible
short-term workaround for the issue until I can upgrade, or if I'm
courting disaster.

Thanks,
Ryan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFMmRNxmEupSvG4S=3p=pH1Yoap0Q_7HCD=ZWvdVTukeyH62Lw>