<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi Micheal,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We find below code in the switch_event.c. Is there a specific reason as to why are we setting the pointers eventp and event as NULL and not destroying the event?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">static switch_status_t switch_event_queue_dispatch_event(switch_event_t **eventp)<o:p></o:p></p>
<p class="MsoNormal">{<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                switch_event_t *event = *eventp;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                if (!SYSTEM_RUNNING) {<o:p></o:p></p>
<p class="MsoNormal">                                return SWITCH_STATUS_FALSE;<o:p></o:p></p>
<p class="MsoNormal">                }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                while (event) {<o:p></o:p></p>
<p class="MsoNormal">                                int launch = 0;<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                                switch_mutex_lock(EVENT_QUEUE_MUTEX);<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                                if (!PENDING && switch_queue_size(EVENT_DISPATCH_QUEUE) > (unsigned int)(DISPATCH_QUEUE_LEN * DISPATCH_THREAD_COUNT)) {<o:p></o:p></p>
<p class="MsoNormal">                                                if (SOFT_MAX_DISPATCH + 1 < MAX_DISPATCH) {<o:p></o:p></p>
<p class="MsoNormal">                                                                launch++;<o:p></o:p></p>
<p class="MsoNormal">                                                                PENDING++;<o:p></o:p></p>
<p class="MsoNormal">                                                                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "launch = %d & PENDING = %d\n", launch,PENDING);<o:p></o:p></p>
<p class="MsoNormal">                                                }<o:p></o:p></p>
<p class="MsoNormal">                                }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                                switch_mutex_unlock(EVENT_QUEUE_MUTEX);<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                                if (launch) {<o:p></o:p></p>
<p class="MsoNormal">                                                if (SOFT_MAX_DISPATCH + 1 < MAX_DISPATCH) {<o:p></o:p></p>
<p class="MsoNormal">                                                                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Dispatching %d Thread\n", (SOFT_MAX_DISPATCH + 1));<o:p></o:p></p>
<p class="MsoNormal">                                                                switch_event_launch_dispatch_threads(SOFT_MAX_DISPATCH + 1);<o:p></o:p></p>
<p class="MsoNormal">                                                }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                                                switch_mutex_lock(EVENT_QUEUE_MUTEX);<o:p></o:p></p>
<p class="MsoNormal">                                                PENDING--;<o:p></o:p></p>
<p class="MsoNormal">                                                switch_mutex_unlock(EVENT_QUEUE_MUTEX);<o:p></o:p></p>
<p class="MsoNormal">                                }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                                <span style="background:yellow;mso-highlight:yellow">
*eventp = NULL;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:yellow;mso-highlight:yellow">                                switch_queue_push(EVENT_DISPATCH_QUEUE, event);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:yellow;mso-highlight:yellow">                                event = NULL;</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                }<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">                return SWITCH_STATUS_SUCCESS;<o:p></o:p></p>
<p class="MsoNormal">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks<o:p></o:p></p>
<p class="MsoNormal">Darshan<o:p></o:p></p>
<p class="MsoNormal"><a name="_MailEndCompose"><o:p> </o:p></a></p>
<span style="mso-bookmark:_MailEndCompose"></span>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> FreeSWITCH-users [mailto:freeswitch-users-bounces@lists.freeswitch.org]
<b>On Behalf Of </b>Michael Jerris<br>
<b>Sent:</b> Tuesday, June 19, 2018 2:34 AM<br>
<b>To:</b> FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org><br>
<b>Subject:</b> Re: [Freeswitch-users] Memory leak while using BGAPI<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">If that event is being consumed by something that is blocking maybe?  Is it always that number or if you do many more does it get bigger?  This could just be an event that isnt consumed yet when you shut down and not a big problem.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On Jun 18, 2018, at 2:17 AM, Mody, Darshan (Darshan) <<a href="mailto:darshanmody@avaya.com">darshanmody@avaya.com</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">Hi,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">We are observing considerable memory leak while using LUA and BGAPI of mod_command.c. Below is the valgrind’s output<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863== 123,170 (45,496 direct, 77,674 indirect) bytes in 517 blocks are definitely lost in loss record 2,370 of 2,398</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    at 0x4C29C23: malloc (vg_replace_malloc.c:299)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x548707C: switch_event_create_subclass_detailed (switch_event.c:736)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x11631389: bgapi_exec (mod_commands.c:5151)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x56EEE8F: dummy_worker (thread.c:151)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x7677E24: start_thread (in /usr/lib64/libpthread-2.17.so)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x805734C: clone (in /usr/lib64/libc-2.17.so</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New""> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863== 143,478 (18,392 direct, 125,086 indirect) bytes in 209 blocks are definitely lost in loss record 2,374 of 2,398</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    at 0x4C29C23: malloc (vg_replace_malloc.c:299)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x548707C: switch_event_create_subclass_detailed (switch_event.c:736)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x542AADE: switch_core_session_exec (switch_core_session.c:2874)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x542B108: switch_core_session_execute_application_get_flags (switch_core_session.c:2742)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x5510C10: CoreSession::execute(char const*, char const*) (switch_cpp.cpp:777)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x16FED72C: ??? (mod_lua_wrap.cpp:7289)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x17217323: ??? (in /usr/lib64/liblua-5.1.so)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x17221E56: ??? (in /usr/lib64/liblua-5.1.so)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x1721774C: ??? (in /usr/lib64/liblua-5.1.so)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x17216A6D: ??? (in /usr/lib64/liblua-5.1.so)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x172178D9: ??? (in /usr/lib64/liblua-5.1.so)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New"">==21863==    by 0x1721344C: lua_pcall (in /usr/lib64/liblua-5.1.so)</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Has some one also observed behavior while using BGAPI?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Darshan<span class="apple-converted-space"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">_________________________________________________________________________<br>
Professional FreeSWITCH Services<br>
</span><a href="mailto:sales@freeswitch.com"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">sales@freeswitch.com</span></a><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
</span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__freeswitch.com_&d=DwMFaQ&c=BFpWQw8bsuKpl1SgiZH64Q&r=bsEULbVnjelD7InzgsegHBEbtXzaIDagy9EuEhJrKfQ&m=doV3DZKRNDthayX1enWG7PgnBOG04sTRZ_pM8b5Xfm0&s=cf87DDQfp5SEnNdhK6qztdg7bCeSemewRWYu-gCSUuM&e="><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">https://freeswitch.com</span></a><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
<br>
Official FreeSWITCH Sites<br>
</span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__freeswitch.com_oss&d=DwMFaQ&c=BFpWQw8bsuKpl1SgiZH64Q&r=bsEULbVnjelD7InzgsegHBEbtXzaIDagy9EuEhJrKfQ&m=doV3DZKRNDthayX1enWG7PgnBOG04sTRZ_pM8b5Xfm0&s=km3nKWxpOpy0aSeC6s3a2J04SwIbQR8nJF_1h-3w9iE&e="><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">https://freeswitch.com/oss</span></a><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
</span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__freeswitch.org_confluence&d=DwMFaQ&c=BFpWQw8bsuKpl1SgiZH64Q&r=bsEULbVnjelD7InzgsegHBEbtXzaIDagy9EuEhJrKfQ&m=doV3DZKRNDthayX1enWG7PgnBOG04sTRZ_pM8b5Xfm0&s=Mj2ZnsEi90La30FIpe-hLKtfSogOiqMoiuljmGH73SU&e="><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">https://freeswitch.org/confluence</span></a><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
</span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__cluecon.com_&d=DwMFaQ&c=BFpWQw8bsuKpl1SgiZH64Q&r=bsEULbVnjelD7InzgsegHBEbtXzaIDagy9EuEhJrKfQ&m=doV3DZKRNDthayX1enWG7PgnBOG04sTRZ_pM8b5Xfm0&s=ZFkKDP5CjqxuU0TAIPZlU9zUpys5ch7RgYWUEGaVTsk&e="><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">https://cluecon.com</span></a><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
<br>
FreeSWITCH-users mailing list<br>
</span><a href="mailto:FreeSWITCH-users@lists.freeswitch.org"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">FreeSWITCH-users@lists.freeswitch.org</span></a><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
</span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freeswitch.org_mailman_listinfo_freeswitch-2Dusers&d=DwMFaQ&c=BFpWQw8bsuKpl1SgiZH64Q&r=bsEULbVnjelD7InzgsegHBEbtXzaIDagy9EuEhJrKfQ&m=doV3DZKRNDthayX1enWG7PgnBOG04sTRZ_pM8b5Xfm0&s=kXdKsgCA_UpVrUS_jBuy4lBpWP5RT9qazUatzWIslsE&e="><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</span></a><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
UNSUBSCRIBE:</span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freeswitch.org_mailman_options_freeswitch-2Dusers&d=DwMFaQ&c=BFpWQw8bsuKpl1SgiZH64Q&r=bsEULbVnjelD7InzgsegHBEbtXzaIDagy9EuEhJrKfQ&m=doV3DZKRNDthayX1enWG7PgnBOG04sTRZ_pM8b5Xfm0&s=J8fwO1L0LvupkX0THYA5RMB66VVagvVYay4ie0-2s68&e="><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">http://lists.freeswitch.org/mailman/options/freeswitch-users</span></a><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
</span><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__freeswitch.com_&d=DwMFaQ&c=BFpWQw8bsuKpl1SgiZH64Q&r=bsEULbVnjelD7InzgsegHBEbtXzaIDagy9EuEhJrKfQ&m=doV3DZKRNDthayX1enWG7PgnBOG04sTRZ_pM8b5Xfm0&s=cf87DDQfp5SEnNdhK6qztdg7bCeSemewRWYu-gCSUuM&e="><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif;color:#954F72">https://freeswitch.com</span></a><o:p></o:p></p>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>