kern/144330: [nfs] mbuf leakage in nfsd with zfs

Daniel Braniss danny at cs.huji.ac.il
Mon Mar 22 11:20:03 UTC 2010


The following reply was made to PR kern/144330; it has been noted by GNATS.

From: Daniel Braniss <danny at cs.huji.ac.il>
To: Rick Macklem <rmacklem at uoguelph.ca>
Cc: Mikolaj Golub <to.my.trociny at gmail.com>,
    Jeremy Chadwick <freebsd at jdc.parodius.com>, freebsd-fs at FreeBSD.org,
    Kai Kockro <kkockro at web.de>, bug-followup at FreeBSD.org,
    gerrit at pmp.uni-hannover.de
Subject: Re: kern/144330: [nfs] mbuf leakage in nfsd with zfs 
Date: Mon, 22 Mar 2010 13:09:53 +0200

 > 
 > 
 > On Sun, 21 Mar 2010, Mikolaj Golub wrote:
 > 
 > >
 > > Reviewing rpc/svc.c:svc_getreq() it looks for me that for RS_DONE case args
 > > are nevere freed. Shouldn't it be like in the attached patch?
 > >
 > Oops, I meant to ask Daniel Braniss (not Jeremy) w.r.t testing the patch,
 > since he can easily reproduce the problem. Of course, I'd appreciate
 > anyone who can test it to do so and let us know how it goes.
 > 
 > Daniel, here's the patch just in case you didn't see Mikolaj's email.
 > 
 > rick
 > Mikolaj's patch:
 > --- sys/rpc/svc.c.orig	2010-03-21 10:17:20.000000000 +0200
 > +++ sys/rpc/svc.c	2010-03-21 10:20:05.000000000 +0200
 > @@ -819,6 +819,7 @@ svc_getreq(SVCXPRT *xprt, struct svc_req
 >   					free(r->rq_addr, M_SONAME);
 >   					r->rq_addr = NULL;
 >   				}
 > +				m_freem(args);
 >   				goto call_done;
 > 
 >   			default:
 
 well, it's much better!, but no cookies yet :-)
 
 from comparing graphs in
 	ftp://ftp.cs.huji.ac.il/users/danny/freebsd/mbuf-leak/
 store-01-e.ps: a production server running newfsd - now up almost 20 days
 	notice that the average used mbuf is below 1000!
 
 store-02.ps: kernel without last patch, classic nfsd
 	the leak is huge.
 
 store-02++.ps: with latest patch
 	the leak is much smaller but I see 2 issues:
 		- the initial leap to over 2000, then a smaller leak.
 
 could someone explain replay_prune() to me?
 
 cheers,
 	danny
 
 
 
 
 


More information about the freebsd-fs mailing list