[OpenSIPS-Users] Potential memory leak in siptrace module
Răzvan Crainea
razvan at opensips.org
Fri Feb 2 06:50:39 EST 2018
Hi, Steve!
We actually found out a memory leak related to transactions tracing.
Unfortunately the fix is not that easy, so it will take a while until we
figure out the right way to solve this. I will keep you updated.
Best regards,
Răzvan
On 02/01/2018 07:30 PM, Steve Brisson wrote:
> Hi,
>
> In answer to your questions…
>
> 1.
>
> $ opensips -V
>
> version: opensips 2.3.2 (x86_64/linux)
>
> flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC,
> F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
>
> ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
> MAX_URI_SIZE 1024, BUF_SIZE 65535
>
> poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
>
> main.c compiled on 15:38:40 Nov 24 2017 with gcc 5.4.0
>
> I built from commit 9e497ea4ab03c67cb073bdf0dccef2b16bff80e2. I've since
> diff'd with the HEAD and I haven't seen any changes in the siptrace code
> that would have helped my particular issue.
>
> 2.
>
> The call to sip_trace is in the main request route branch and it gets
> called for all requests.
>
> input parameters:
>
> sip_trace("tid", "d", "sip");
>
> module config:
>
> modparam("siptrace", "trace_on", 0)
>
> modparam("siptrace", "trace_id",
> "[tid]uri=mysql://db-user:db-pass@db-host/db-name;table=sip_trace;")
>
> *From:*Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
> *Sent:* Thursday, February 1, 2018 10:54 AM
> *To:* OpenSIPS users mailling list <users at lists.opensips.org>; Steve
> Brisson <steve.brisson at librestream.com>
> *Subject:* Re: [OpenSIPS-Users] Potential memory leak in siptrace module
>
> Hi Steve,
>
> Thank you for your report. Could you provide the exact revision of your
> OpenSIPS (opensips -V) ?
>
> Also what requests are you calling the sip_trace() for (INVITES ?
> PUBLISH? all?) and what are the input paramters ?
>
> Thanks,
>
> Bogdan-Andrei Iancu
>
> OpenSIPS Founder and Developer
>
> http://www.opensips-solutions.com
>
> OpenSIPS Summit 2018
>
> http://www.opensips.org/events/Summit-2018Amsterdam
>
> On 01/31/2018 07:48 PM, Steve Brisson wrote:
>
> I've found that when I call the sip_trace method, in the main
> request routing block, the shmem used_size and fragments continually
> increases until the process crashes from an out of memory condition.
>
> By enabling memory alloc debugging, I confirmed that the leaked
> allocation is the shm_malloc of a trace_info_t structure in the
> sip_trace_w method [siptrace.c:1539]. This piece of memory is
> supposed to be freed in the dialog terminated callback but because
> of the logic in the sip_trace_w method, trace_flags gets modified to
> TRACE_TRANSACTION and the dialog callbacks are never registered.
>
> I haven't worked out the details of a proper fix yet. My workaround
> has been to remove the siptrace module from my config.
>
> OpenSIPS config details:
>
> opensips 2.3.2 (x86_64/linux)
>
> #siptrace module config
>
> modparam("siptrace", "trace_on", 0)
>
> modparam("siptrace", "trace_id",
> "[tid]uri=mysql://db-user:db-pass@db-host/db-name;table=sip_trace;")
>
> #siptrace method call in main request branch
>
> sip_trace("tid", "d", "sip");
>
>
>
>
> _______________________________________________
>
> Users mailing list
>
> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
--
Răzvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com
OpenSIPS Summit 2018
http://www.opensips.org/events/Summit-2018Amsterdam
More information about the Users
mailing list