Date: Mon, 7 Jun 2004 22:16:24 +0200 From: Arjan van Leeuwen <avleeuwen@piwebs.com> To: Robert Watson <rwatson@freebsd.org> Cc: "David A. Benfell" <benfell@parts-unknown.org> Subject: Re: file descripter leak in current with Qmail? Message-ID: <200406072216.29044.avleeuwen@piwebs.com> In-Reply-To: <Pine.NEB.3.96L.1040607154056.88690D-100000@fledge.watson.org> References: <Pine.NEB.3.96L.1040607154056.88690D-100000@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--Boundary-02=_d0MxAuVjRZMafXQ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Monday 07 June 2004 21:42, you wrote: > On Mon, 7 Jun 2004, Arjan van Leeuwen wrote: > > > > In terms of debugging it: your first task it to identify if there's > > > > one process that's holding all the fd's, or if it is distributed ov= er > > > > many proceses. After that, you want to track down what kind of fd = is > > > > being left open, which may help you track down why it's left open... > > > > > > Just as I'm reading this, I'm seeing the same thing on my -CURRENT > > > server, which has a _very_ low load (atm, it's only routing the > > > internet traffic for 3 users and serving SMTP for 2 of them). I'm also > > > running qmail. The kernel is from June 6. How do I go about > > > investigating this further? > > > > Replying to myself - > > fstat shows all open files evenly distributed among the running > > processes. > > It could be that this is related to the esd file descriptor leak problem > also being reported. You might also try the attached patch. I get a panic (address not allocated) when using the patch. I can't write d= own=20 any useful details about it right now, because although the server has only= 3=20 users, they're very disconcerned when I disrupt their internet traffic :). Best regards, Arjan > > Robert N M Watson FreeBSD Core Team, TrustedBSD Projects > robert@fledge.watson.org Senior Research Scientist, McAfee Research > > Index: uipc_syscalls.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /data/ncvs/src/sys/kern/uipc_syscalls.c,v > retrieving revision 1.187 > diff -u -r1.187 uipc_syscalls.c > --- uipc_syscalls.c 7 Jun 2004 09:59:50 -0000 1.187 > +++ uipc_syscalls.c 7 Jun 2004 19:38:39 -0000 > @@ -285,7 +285,7 @@ > if ((head->so_state & SS_NBIO) && TAILQ_EMPTY(&head->so_comp)) { > ACCEPT_UNLOCK(); > error =3D EWOULDBLOCK; > - goto done; > + goto noconnection; > } > while (TAILQ_EMPTY(&head->so_comp) && head->so_error =3D=3D 0) { > if (head->so_state & SS_CANTRCVMORE) { > @@ -296,14 +296,14 @@ > "accept", 0); > if (error) { > ACCEPT_UNLOCK(); > - goto done; > + goto noconnection; > } > } > if (head->so_error) { > error =3D head->so_error; > head->so_error =3D 0; > ACCEPT_UNLOCK(); > - goto done; > + goto noconnection; > } > so =3D TAILQ_FIRST(&head->so_comp); > KASSERT(!(so->so_qstate & SQ_INCOMP), ("accept1: so SQ_INCOMP")); > > > > !DSPAM:40c4c5b6283404763116770! --Boundary-02=_d0MxAuVjRZMafXQ Content-Type: application/pgp-signature Content-Description: signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQBAxM0d3Ym57eNCXiERAjnQAJ9kvpK+myUOOLehWoymlWBtVkA3FgCeM0XR gex5oXPPS28XDdrCvlwtqgg= =jM/Y -----END PGP SIGNATURE----- --Boundary-02=_d0MxAuVjRZMafXQ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200406072216.29044.avleeuwen>