From owner-freebsd-fs@FreeBSD.ORG Mon Mar 22 00:30:10 2010 Return-Path: Delivered-To: freebsd-fs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0AAD0106564A for ; Mon, 22 Mar 2010 00:30:10 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id EEF678FC1E for ; Mon, 22 Mar 2010 00:30:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o2M0U9p4034690 for ; Mon, 22 Mar 2010 00:30:09 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o2M0U91J034682; Mon, 22 Mar 2010 00:30:09 GMT (envelope-from gnats) Date: Mon, 22 Mar 2010 00:30:09 GMT Message-Id: <201003220030.o2M0U91J034682@freefall.freebsd.org> To: freebsd-fs@FreeBSD.org From: Rick Macklem Cc: Subject: Re: kern/144330: [nfs] mbuf leakage in nfsd with zfs X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Rick Macklem List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Mar 2010 00:30:10 -0000 The following reply was made to PR kern/144330; it has been noted by GNATS. From: Rick Macklem To: Mikolaj Golub Cc: Jeremy Chadwick , freebsd-fs@FreeBSD.org, Kai Kockro , bug-followup@FreeBSD.org, gerrit@pmp.uni-hannover.de Subject: Re: kern/144330: [nfs] mbuf leakage in nfsd with zfs Date: Sun, 21 Mar 2010 20:12:22 -0400 (EDT) On Sun, 21 Mar 2010, Mikolaj Golub wrote: [good stuff snipped] > > Athough it might be another issue then reported in this pr :-). > I think it's the same one, since disabling the replay cache made the leak go away. > 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? > Good catch!! It certainly looks like what would have caused the leak to me. Since r_args has not been set to args for that case, svc_freereq() wouldn't free args, just as you observed. Hopefully Jeremy can test this, but I suspect you've found/fixed the culprit. Sorry, I can't remember if you are a committer? (If not, I'll try and get dfr to review it and then get it committed.) Again, good job, rick ps: I was looking for a leak of the copy in the cache and didn't think of the request coming in.