NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/44625: memory exhaustion on NFS server while writing many files
The following reply was made to PR kern/44625; it has been noted by GNATS.
From: David Holland <dholland-bugs%netbsd.org@localhost>
To: gnats-bugs%NetBSD.org@localhost, Mindaugas Rasiukevicius
<rmind%netbsd.org@localhost>
Cc:
Subject: Re: kern/44625: memory exhaustion on NFS server while writing many
files
Date: Thu, 17 Mar 2011 09:18:53 +0000
On Thu, Mar 17, 2011 at 05:35:01AM +0000, Mindaugas Rasiukevicius wrote:
> > The Npage of pnbufpl grows extremely.
> >
> > I also tried some kernels checked out on other date. It seems that
> > this leakage is seen after struct componentname changes on Nov 30 2010.
>
> http://nxr.netbsd.org/xref/src/sys/nfs/nfs_serv.c?r=1.156#465
>
> A leak in this error path (at least)?
good catch and boy don't I feel stupid. :-/
This may help (not tested yet though):
Index: nfs/nfs_serv.c
===================================================================
RCS file: /cvsroot/src/sys/nfs/nfs_serv.c,v
retrieving revision 1.156
diff -u -p -r1.156 nfs_serv.c
--- nfs/nfs_serv.c 5 Feb 2011 13:35:11 -0000 1.156
+++ nfs/nfs_serv.c 17 Mar 2011 09:14:46 -0000
@@ -463,6 +463,12 @@ nfsrv_lookup(struct nfsrv_descript *nfsd
}
if (error) {
+ if (nd.ni_pathbuf != NULL) {
+ pathbuf_destroy(nd.ni_pathbuf);
+ }
+ if (ipb != NULL) {
+ pathbuf_destroy(ipb);
+ }
nfsm_reply(NFSX_POSTOPATTR(v3));
nfsm_srvpostop_attr(dirattr_ret, &dirattr);
return (0);
Index: nfs/nfs_srvsubs.c
===================================================================
RCS file: /cvsroot/src/sys/nfs/nfs_srvsubs.c,v
retrieving revision 1.8
diff -u -p -r1.8 nfs_srvsubs.c
--- nfs/nfs_srvsubs.c 30 Nov 2010 10:30:03 -0000 1.8
+++ nfs/nfs_srvsubs.c 17 Mar 2011 09:14:46 -0000
@@ -276,6 +276,7 @@ nfs_namei(struct nameidata *ndp, nfsrvfh
out:
if (ndp->ni_pathbuf != NULL) {
pathbuf_destroy(ndp->ni_pathbuf);
+ ndp->ni_pathbuf = NULL;
} else {
PNBUF_PUT(path);
}
--
David A. Holland
dholland%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index