From owner-freebsd-current@FreeBSD.ORG Mon Jun 7 19:43:41 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1FB3516A4CE for ; Mon, 7 Jun 2004 19:43:41 +0000 (GMT) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id A98B843D39 for ; Mon, 7 Jun 2004 19:43:40 +0000 (GMT) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (localhost [127.0.0.1]) by fledge.watson.org (8.12.11/8.12.11) with ESMTP id i57JgXeT013412; Mon, 7 Jun 2004 15:42:33 -0400 (EDT) (envelope-from robert@fledge.watson.org) Received: from localhost (robert@localhost)i57JgXkK013409; Mon, 7 Jun 2004 15:42:33 -0400 (EDT) (envelope-from robert@fledge.watson.org) Date: Mon, 7 Jun 2004 15:42:33 -0400 (EDT) From: Robert Watson X-Sender: robert@fledge.watson.org To: Arjan van Leeuwen In-Reply-To: <200406072141.09413.avleeuwen@piwebs.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-current@freebsd.org cc: "David A. Benfell" Subject: Re: file descripter leak in current with Qmail? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jun 2004 19:43:41 -0000 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 over 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. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Senior Research Scientist, McAfee Research Index: uipc_syscalls.c =================================================================== 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 = EWOULDBLOCK; - goto done; + goto noconnection; } while (TAILQ_EMPTY(&head->so_comp) && head->so_error == 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 = head->so_error; head->so_error = 0; ACCEPT_UNLOCK(); - goto done; + goto noconnection; } so = TAILQ_FIRST(&head->so_comp); KASSERT(!(so->so_qstate & SQ_INCOMP), ("accept1: so SQ_INCOMP"));