On Tue, Nov 25, 2014 at 8:14 AM, Matthew Jordan <mjordan at digium.com> wrote:> On Mon, Nov 24, 2014 at 2:12 PM, James Lamanna <jlamanna at gmail.com> wrote: > > Also, how big does the cache in frame.c grow to? > > I've recompiled with MALLOC_DEBUG on that server: > > > > asterisk -rx "memory show summary" > > > > .... > > 1780466242 bytes (1780181594 cache) in 2352909 allocations in file > > frame.c > > ... > > > > Seems like a ridiculous cache. > > > > I'm not going to respond to your new thread, since it is the same > discussion as this one. > > The frame cache is a per-thread local cache of frames that prevents > having to re-allocate frames as they pass through Asterisk. Clearly, > something is abusing it. > > I think you'll need to provide some more information on how you're > producing this situation. Specifically: > * Channel technologies involved, and the formats on the channels > * Dialplan that reproduces the problem > > Are you using any non-core dialplan applications or channel drivers? > >This PBX has about 100 registered SIP clients, along with 23 PRI channels, 2 inbound/outbound SIP trunks and around 100 IAXModems registered to it. It primarily handles faxing. I am not using any non-standard channel drivers. I am using the T.38 gateway funcionality. The jist of the dialplan is this: (example of the PRI and a SIP trunk, inbound) [pri-in] exten => _X.,1,Set(__FROM_DID=${EXTEN}) exten => _X.,n,Set(FAX_IDX=700) exten => _X.,n,Set(MAX_IDX=719) exten => _X.,n,Goto(dial-hylafax,s,1) [sip-trunk-in] exten => _X.,1(normal),Set(__FROM_DID=${EXTEN}) exten => _X.,n,Set(FAX_IDX=950) exten => _X.,n,Set(MAX_IDX=959) exten => _X.,n,Set(FAXOPT(gateway)=yes) exten => _X.,n,Goto(dial-hylafax,s,1) [dial-hylafax] exten => s,1,GotoIf($["${FROM_DID:0:1}" = "1"]?prune:cont) exten => s,n(prune),Set(__FROM_DID=${FROM_DID:1}) exten => s,n(cont),GotoIf($[${FAX_IDX} <= ${MAX_IDX}]?tryfax:nofax) exten => s,n(tryfax),Set(STATE=${DEVICE_STATE(Custom:iaxmodem${FAX_IDX})}) exten => s,n,NoOp(${STATE}) exten => s,n,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=INUSE) exten => s,n,Dial(IAX2/iaxmodem${FAX_IDX}/${FROM_DID},60,g) exten => s,n,Goto(s-${DIALSTATUS},1) exten => s,n(nofax),Playtones(busy) exten => s,n,NoOp(NO MODEMS AVAILABLE) exten => s,n,Wait(20) exten => s,n,Hangup() exten => s-ANSWER,1,NoOp(IAXMODEM HANGUP) exten => s-ANSWER,n,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=NOT_INUSE) exten => s-ANSWER,n,Hangup() exten => _s-.,1,Set(FAX_IDX=${MATH(1+${FAX_IDX},i)}) exten => _s-.,n,Goto(s,1) exten => h,1,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=NOT_INUSE) The current state requires me to restart Asterisk almost every day. I'm also seeing this on a completely different machine after upgrading from Asterisk10 to 11. -- James -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20141125/c6d83506/attachment.html>
On Tue, Nov 25, 2014 at 10:21 AM, James Lamanna <jlamanna at gmail.com> wrote:> > On Tue, Nov 25, 2014 at 8:14 AM, Matthew Jordan <mjordan at digium.com> > wrote: > >> On Mon, Nov 24, 2014 at 2:12 PM, James Lamanna <jlamanna at gmail.com> >> wrote: >> > Also, how big does the cache in frame.c grow to? >> > I've recompiled with MALLOC_DEBUG on that server: >> > >> > asterisk -rx "memory show summary" >> > >> > .... >> > 1780466242 bytes (1780181594 cache) in 2352909 allocations in file >> > frame.c >> > ... >> > >> > Seems like a ridiculous cache. >> > >> >> I'm not going to respond to your new thread, since it is the same >> discussion as this one. >> >> The frame cache is a per-thread local cache of frames that prevents >> having to re-allocate frames as they pass through Asterisk. Clearly, >> something is abusing it. >> >> I think you'll need to provide some more information on how you're >> producing this situation. Specifically: >> * Channel technologies involved, and the formats on the channels >> * Dialplan that reproduces the problem >> >> Are you using any non-core dialplan applications or channel drivers? >> >> > This PBX has about 100 registered SIP clients, along with 23 PRI channels, > 2 inbound/outbound SIP trunks and around 100 IAXModems registered to it. It > primarily handles faxing. > I am not using any non-standard channel drivers. I am using the T.38 > gateway funcionality. > > The jist of the dialplan is this: (example of the PRI and a SIP trunk, > inbound) > > [pri-in] > exten => _X.,1,Set(__FROM_DID=${EXTEN}) > exten => _X.,n,Set(FAX_IDX=700) > exten => _X.,n,Set(MAX_IDX=719) > exten => _X.,n,Goto(dial-hylafax,s,1) > > [sip-trunk-in] > exten => _X.,1(normal),Set(__FROM_DID=${EXTEN}) > exten => _X.,n,Set(FAX_IDX=950) > exten => _X.,n,Set(MAX_IDX=959) > exten => _X.,n,Set(FAXOPT(gateway)=yes) > exten => _X.,n,Goto(dial-hylafax,s,1) > > [dial-hylafax] > exten => s,1,GotoIf($["${FROM_DID:0:1}" = "1"]?prune:cont) > exten => s,n(prune),Set(__FROM_DID=${FROM_DID:1}) > exten => s,n(cont),GotoIf($[${FAX_IDX} <= ${MAX_IDX}]?tryfax:nofax) > exten => s,n(tryfax),Set(STATE=${DEVICE_STATE(Custom:iaxmodem${FAX_IDX})}) > exten => s,n,NoOp(${STATE}) > exten => s,n,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=INUSE) > exten => s,n,Dial(IAX2/iaxmodem${FAX_IDX}/${FROM_DID},60,g) > exten => s,n,Goto(s-${DIALSTATUS},1) > exten => s,n(nofax),Playtones(busy) > exten => s,n,NoOp(NO MODEMS AVAILABLE) > exten => s,n,Wait(20) > exten => s,n,Hangup() > exten => s-ANSWER,1,NoOp(IAXMODEM HANGUP) > exten => s-ANSWER,n,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=NOT_INUSE) > exten => s-ANSWER,n,Hangup() > exten => _s-.,1,Set(FAX_IDX=${MATH(1+${FAX_IDX},i)}) > exten => _s-.,n,Goto(s,1) > exten => h,1,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=NOT_INUSE) > > The current state requires me to restart Asterisk almost every day. > I'm also seeing this on a completely different machine after upgrading > from Asterisk10 to 11. > >I'm wondering if this is a problem in the SLIN converter? I do use SLIN with iaxmodem. -- James -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20141126/9deca244/attachment.html>
On Wed, Nov 26, 2014 at 3:20 PM, James Lamanna <jlamanna at gmail.com> wrote:> > On Tue, Nov 25, 2014 at 10:21 AM, James Lamanna <jlamanna at gmail.com> > wrote: > >> >> On Tue, Nov 25, 2014 at 8:14 AM, Matthew Jordan <mjordan at digium.com> >> wrote: >> >>> On Mon, Nov 24, 2014 at 2:12 PM, James Lamanna <jlamanna at gmail.com> >>> wrote: >>> > Also, how big does the cache in frame.c grow to? >>> > I've recompiled with MALLOC_DEBUG on that server: >>> > >>> > asterisk -rx "memory show summary" >>> > >>> > .... >>> > 1780466242 bytes (1780181594 cache) in 2352909 allocations in file >>> > frame.c >>> > ... >>> > >>> > Seems like a ridiculous cache. >>> > >>> >>> I'm not going to respond to your new thread, since it is the same >>> discussion as this one. >>> >>> The frame cache is a per-thread local cache of frames that prevents >>> having to re-allocate frames as they pass through Asterisk. Clearly, >>> something is abusing it. >>> >>> I think you'll need to provide some more information on how you're >>> producing this situation. Specifically: >>> * Channel technologies involved, and the formats on the channels >>> * Dialplan that reproduces the problem >>> >>> Are you using any non-core dialplan applications or channel drivers? >>> >>> >> This PBX has about 100 registered SIP clients, along with 23 PRI >> channels, 2 inbound/outbound SIP trunks and around 100 IAXModems registered >> to it. It primarily handles faxing. >> I am not using any non-standard channel drivers. I am using the T.38 >> gateway funcionality. >> >> The jist of the dialplan is this: (example of the PRI and a SIP trunk, >> inbound) >> >> [pri-in] >> exten => _X.,1,Set(__FROM_DID=${EXTEN}) >> exten => _X.,n,Set(FAX_IDX=700) >> exten => _X.,n,Set(MAX_IDX=719) >> exten => _X.,n,Goto(dial-hylafax,s,1) >> >> [sip-trunk-in] >> exten => _X.,1(normal),Set(__FROM_DID=${EXTEN}) >> exten => _X.,n,Set(FAX_IDX=950) >> exten => _X.,n,Set(MAX_IDX=959) >> exten => _X.,n,Set(FAXOPT(gateway)=yes) >> exten => _X.,n,Goto(dial-hylafax,s,1) >> >> [dial-hylafax] >> exten => s,1,GotoIf($["${FROM_DID:0:1}" = "1"]?prune:cont) >> exten => s,n(prune),Set(__FROM_DID=${FROM_DID:1}) >> exten => s,n(cont),GotoIf($[${FAX_IDX} <= ${MAX_IDX}]?tryfax:nofax) >> exten => s,n(tryfax),Set(STATE=${DEVICE_STATE(Custom:iaxmodem${FAX_IDX})}) >> exten => s,n,NoOp(${STATE}) >> exten => s,n,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=INUSE) >> exten => s,n,Dial(IAX2/iaxmodem${FAX_IDX}/${FROM_DID},60,g) >> exten => s,n,Goto(s-${DIALSTATUS},1) >> exten => s,n(nofax),Playtones(busy) >> exten => s,n,NoOp(NO MODEMS AVAILABLE) >> exten => s,n,Wait(20) >> exten => s,n,Hangup() >> exten => s-ANSWER,1,NoOp(IAXMODEM HANGUP) >> exten => s-ANSWER,n,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=NOT_INUSE) >> exten => s-ANSWER,n,Hangup() >> exten => _s-.,1,Set(FAX_IDX=${MATH(1+${FAX_IDX},i)}) >> exten => _s-.,n,Goto(s,1) >> exten => h,1,Set(DEVICE_STATE(Custom:iaxmodem${FAX_IDX})=NOT_INUSE) >> >> The current state requires me to restart Asterisk almost every day. >> I'm also seeing this on a completely different machine after upgrading >> from Asterisk10 to 11. >> >> > I'm wondering if this is a problem in the SLIN converter? > I do use SLIN with iaxmodem. > >Also of note, A quick valgrind run and attempting to send a few faxes produces a bunch of these in the valgrind output: ==30640== 217,259 bytes in 287 blocks are definitely lost in loss record 1,778 of 1,789 ==30640== at 0x4C267CC: calloc (vg_replace_malloc.c:467) ==30640== by 0x4DC50E: ast_frdup (utils.h:523) ==30640== by 0x47125F: __ast_queue_frame (channel.c:1284) ==30640== by 0x1EF75589: __do_deliver (chan_iax2.c:3102) ==30640== by 0x1EF76C5A: schedule_delivery (chan_iax2.c:4374) ==30640== by 0x1EF8F497: socket_process_helper (chan_iax2.c:12010) ==30640== by 0x1EF99C37: iax2_process_thread (chan_iax2.c:12030) ==30640== by 0x56C458: dummy_start (utils.c:1192) ==30640== by 0x5E359C9: start_thread (pthread_create.c:300) ==30640== by 0x270326FF: ??? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20141128/8aaa834a/attachment.html>