[asterisk-users] codec_g729a implicated in file descriptor buildup

Kevin P. Fleming kpfleming at digium.com
Wed Dec 1 13:15:59 CST 2010


On 12/01/2010 01:05 PM, Steve Murphy wrote:
> Hello,
>
> I wonder if anyone else has noticed this.
>
> I see a pair of calls to pipe() within the codec_g729a, and suddenly, I
> have a leaked file descriptor that remains until asterisk dies.
>
> Now, maybe no-one sees this, mainly because I have no g729 licenses on
> the machines where this happens. And conversely,
> I haven't yet studied servers that do have licenses.  Why have
> codec_g729a.so loaded if I don't have licenses? Well, I can
> install licenses on the run as needed this way, and not worry about
> having to install anything, or
> muck things up if there is a mistake. I can mod the phones and get g729
> used without restarting asterisk
> or loading modules.
>
> On completely quiet machines, with no calls in or out,  I get one
> descriptor per day, maybe of a daily reload or something. I
> haven't gotten that far in my investigations yet.
>
> Since the module isn't compiled with debug info, the best stack trace I
> can get is:
>
> #0  0x4d5544a0 in pipe () from /lib/libc.so.6
> #1  0xb69384ce in __cxa_finalize () from
> /usr/lib/asterisk/modules/codec_g729a.so
> #2  0xae7fdae4 in ?? ()
> #3  0xae7fcae4 in ?? ()
> #4  0x00001000 in ?? ()
> #5  0x00000000 in ?? ()
>
> The version of the g279 module is:  Digium G.729A Module Version
> 1.6.2.0_3.1.4 (optimized for generic_32)
>
> Just now, on a very low-volume asterisk server I am monitoring, two
> calls just got processed.  The
> g729a codec did a pair of pipe() calls, and voila! I have one more open
> file descriptor as reported by lsof.
>
> Some of my servers (which are busy, but nowhere near capacity!)  will
> build up 100  such leaked descriptors per day, and unless I jack up the
> maximum number of file descriptors, those servers will have to be
> restarted about every 10 days, or they will eventually stop accepting
> calls (or making them, for that matter). Not nice.
>
> So, since there is no list of problems fixed with the current g729a
> module distribution, (at least, no in the README in the dist,
> is this a problem that is known? Is this a new problem? Should I call
> support?
>
> Anybody else see this?

This problem may be in the license file checking code... I've just taken 
a quick look at it, and there may be at least one code path that leaks a 
pair of pipe file descriptors. I'll enter an internal issue to get this 
addressed ASAP. Thanks for the report.

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kfleming at digium.com
Check us out at www.digium.com & www.asterisk.org



More information about the asterisk-users mailing list