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>