[asterisk-bugs] [JIRA] (ASTERISK-28521) pjsip: Memory Leak

Mark (JIRA) noreply at issues.asterisk.org
Thu Sep 12 07:39:47 CDT 2019


    [ https://issues.asterisk.org/jira/browse/ASTERISK-28521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=247997#comment-247997 ] 

Mark edited comment on ASTERISK-28521 at 9/12/19 7:39 AM:
----------------------------------------------------------

Though increasing debug/verbose log, i only see normal communication between asterisk<->sip provider/endpoints (one registered number + one endpoint during tests, so the produced log is fairly small).

I've tried with the following changes to the configuration:
- delete acl section = same issue
- endpoints only  (no registration) = same issue
- registration only (no endpoints) = same issue
- qualify_frequency set to 0 = same issue

As i didn't see any increased memory issues with zero registration/endpoints before, i also thought about changing parameters which are always involved with both registration/endpoint connection attempts.

To make it short, when switching from tls -> udp for registration and endpoints, i don't see anymore memory issues and "pool_policy_malloc.c" entries even decrease after time

# start
$ grep "pool_policy_malloc.c" allocations_start | wc -l
289

# after 2h
$ grep "pool_policy_malloc.c" allocations_2h | wc -l
273

Further tests show:
- registration (tls), endpoints (udp) = same issue
- registration (udp), endpoints (tls) = same issue
- registration (udp), endpoints (udp) = no issue


was (Author: mpa):
Though increasing debug/verbose log, i only see normal communication between asterisk<->sip provider/endpoints (one registered number + one endpoint during tests, so the produced log is fairly small).

I've tried with the following changes to the configuration:
- delete acl section = same issue
- endpoints only  (no registration) = same issue
- registration only (no endpoints) = same issue
- qualify_frequency set to 0 = same issue

As i didn't see any increased memory issues with zero registration/endpoints before, i also thought about changing parameters which are always involved with both registration/endpoint connection attempts.

To make it short, when switching from tls -> udp for registration and endpoints, i don't see anymore memory issues and "pool_policy_malloc.c" entries even decrease after time

# start
$ grep "pool_policy_malloc.c" allocations_start | wc -l
289

# after 2h
$ grep "pool_policy_malloc.c" allocations_start | wc -l
273

Further tests show:
- registration (tls), endpoints (udp) = same issue
- registration (udp), endpoints (tls) = same issue
- registration (udp), endpoints (udp) = no issue

> pjsip: Memory Leak
> ------------------
>
>                 Key: ASTERISK-28521
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-28521
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/General
>    Affects Versions: 16.4.0, 16.4.1, 16.5.0
>         Environment: Asterisk 16.5.0, OpenBSD 6.6-beta
>            Reporter: Mark
>            Assignee: Unassigned
>              Labels: pjsip
>         Attachments: pjsip.conf, summary_12h, summary_start
>
>
> After updating OpenBSD 6.6-current about 4 weeks ago, i've also
> updated Asterisk 16.4.0 -> 16.4.1. Since then, Asterisk started 
> using more and more memory. Right now, i'm running Asterisk 
> 16.5.0 and OpenBSD 6.6-beta in a very small test environment and 
> i still see the same issue.
> Weeks ago, Asterisk started with ~60MB and stayed around that 
> value...now it starts with ~60MB and increases by 80MB/24h 
> without any calls made.
> After compiling with MALLOC_DEBUG and running "memory show 
> summary" every few hours, there's only one line that goes through 
> the roof:
> * after start
>  5542784 bytes in        464 allocations in file ../src/pj/pool_policy_malloc.c
> * 12h later
> 67805312 bytes in      25962 allocations in file ../src/pj/pool_policy_malloc.c
> The same applies for "memory show allocations":
> * after start
> $ grep "pool_policy_malloc.c" allocations_start | wc -l
> 468
> * 12h later
> $ grep "pool_policy_malloc.c" allocations_12h | wc -l
> 25968
> The only setting that stops Asterisk from allocating more and more
>  memory is, when removing "registration" and "endpoints" from
>  pjsip.conf. This way, Asterisk only listens on 5061 TLS and does 
> nothing.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list