cvs commit: src/sys/nfsserver nfsrvcache.h

Kris Kennaway kris at obsecurity.org
Tue Apr 25 01:36:13 UTC 2006


On Mon, Apr 24, 2006 at 05:45:08PM -0700, Sam Leffler wrote:
> Kris Kennaway wrote:
> >On Mon, Apr 24, 2006 at 05:29:08PM -0700, Sam Leffler wrote:
> >>Mohan Srinivasan wrote:
> >>>mohans      2006-04-25 00:21:57 UTC
> >>>
> >>> FreeBSD src repository
> >>>
> >>> Modified files:
> >>>   sys/nfsserver        nfsrvcache.h 
> >>> Log:
> >>> Bump up the NFS server dupreq cache limit to 2K (from 64). With a small
> >>> duplicate request cache, under heavy load a lot of non-idempotent 
> >>> requests
> >>> were getting served again, resulting in errors.
> >>How does increasing the cache size fix this problem?
> >
> >Fundamentally it doesn't, this change just pushes it out of the regime
> >where it's trivial to overflow.
> 
> Why is it hard to do a real fix?  Or is this a temporary bandaid?

AFAIK (Mohan will know more) other implementations do the same thing
as we do, up to making the cache size scaled to RAM instead of
statically sized.

I guess if you make sure you hold on to every packet for a suitably
long period of time then you can be sure you don't accidentally let
through very delayed duplicate/retransmitted packets, but this could
have unbounded memory requirements on a busy server.

The main point though was that 64 is ludicrously low and easily
overflowed in practise, and this change has minimal impact, mitigates
the problem in practise, and is suitable for merging to 6.1.

Kris

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20060425/06110f71/attachment.pgp


More information about the cvs-src mailing list