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>