Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Nov 2001 21:01:59 -0800 (PST)
From:      Archie Cobbs <archie@dellroad.org>
To:        Trond Davidsen <trond.davidsen@ii.uib.no>
Cc:        freebsd-net@FreeBSD.ORG
Subject:   Re: Mpd with a large number, 200+ , of bundles
Message-ID:  <200111130501.fAD51xB56344@arch20m.dellroad.org>
In-Reply-To: <3BF03C0F.9080704@ii.uib.no> "from Trond Davidsen at Nov 12, 2001 10:15:59 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
Trond Davidsen writes:
> just an update.  I've been debugging a little more and found that mpd 
> hangs hard,top shows mpd's state as 'piperd',  when it got over 128 
> sockets open.  This sounds like some kind of system limit to me, any 
> ideas anyone?
> 
> I've enbled the '#define DEBUG_EVENT' in the file 'event.c' in the mpd 
> source, and got the following in the log:
> 
> After mpd has set up all the (200) bundles:
> 
> Nov 12 21:57:26 vpn-gw3 mpd: [pptp190] EVENT: ACTIVE EVENTS:
> Nov 12 21:57:26 vpn-gw3 mpd: [pptp190] EVENT:  -> 0x08079500 Read(13) 
> REF 150095121 @ 0x80794f0
> Nov 12 21:57:26 vpn-gw3 mpd: [pptp190] EVENT:  -> 0x08079780 Read(23) 
> REF 150095126 @ 0x8079770
> Nov 12 21:57:26 vpn-gw3 mpd: [pptp190] EVENT:  -> 0x08079980 Read(31) 
> REF 150095131 @ 0x8079970

Hmm... all prime number file descriptors... (just kidding :-)

> [snip]
> 
> 
> Nov 12 21:57:26 vpn-gw3 mpd: [pptp190] EVENT: DOING ACTIONS:
> Nov 12 21:57:26 vpn-gw3 mpd: [pptp190] EVENT: Doing action for Read(13) 
> REF 150095121 @ 0x80794f0
> 
> 
> After a little debugging with gdb, I found that these events are 
> registered at line 299 and 301 in the function NgFuncInit in the file 
> ngfunc.c.
> 
> Does this give any clue as to where the fault or limit might be located?

Those two events correspond to the netgraph data and control sockets
associated with the bundle. Not sure how important that is..
the ng_socket(4) code relies on the standard generic socket code
so unlikely that the problem lies there.

The fact that it's blocked on "piperd" implies that something is
going wrong with a message pipe (mpd uses pipe(2) to communicate
with itself). But the tsleep() call in pipe_read() uses PCATCH,
so 'kill' should work...

What version of FreeBSD again?

-Archie

__________________________________________________________________________
Archie Cobbs     *     Packet Design     *     http://www.packetdesign.com

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200111130501.fAD51xB56344>