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_at_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 _at__at_ -285,7 +285,7 _at__at_ 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) { _at__at_ -296,14 +296,14 _at__at_ "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"));Received on Mon Jun 07 2004 - 17:43:41 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:56 UTC