[asterisk-bugs] [JIRA] (ASTERISK-27261) Memory Leak when using ARI

Ali Shahbour (JIRA) noreply at issues.asterisk.org
Thu Sep 7 12:03:08 CDT 2017


Ali Shahbour created ASTERISK-27261:
---------------------------------------

             Summary: Memory Leak when using ARI
                 Key: ASTERISK-27261
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27261
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Applications/app_stasis
    Affects Versions: 14.6.0
            Reporter: Ali Shahbour


I am running a program that do use ARI to originate calls and also receive calls through SIP into a stasis application , I noticed that almost every 3 days i got my 6 GB server memory full . I first thought it is from moh but then after checking the memory i noticed that stasis_channels.c is getting increased all the time , i did a restart and tested with only one call and i noticed that on each call the number of allocation increased by 2 (while the call is active it increase by 8 then drop 6 and keep 2)

```
astercore*CLI> memory show summary
    277909 bytes in        426 allocations in file /usr/local/src/asterisk-14.6.0/include/asterisk/strings.h
    709335 bytes in       2456 allocations in file /usr/local/src/asterisk-14.6.0/include/asterisk/threadstorage.h
      1263 bytes in         67 allocations in file ael/pval.c
      2552 bytes in          6 allocations in file app.c
       256 bytes in          3 allocations in file app_agent_pool.c
       736 bytes in          1 allocations in file app_bridgewait.c
      1168 bytes in          3 allocations in file app_confbridge.c
     25520 bytes in          2 allocations in file app_followme.c
     36011 bytes in         10 allocations in file app_minivm.c
      6784 bytes in          2 allocations in file app_queue.c
     14998 bytes in         10 allocations in file app_voicemail.c
       104 bytes in          1 allocations in file ari/ari_websockets.c
      1109 bytes in          6 allocations in file ari/config.c
     34650 bytes in        210 allocations in file ari/resource_channels.c
       861 bytes in          3 allocations in file ari/resource_events.c
     24454 bytes in        979 allocations in file asterisk.c
    745040 bytes in       9313 allocations in file astobj2_hash.c
     33352 bytes in        379 allocations in file astobj2_rbtree.c
       304 bytes in          2 allocations in file bridge.c
      1016 bytes in          1 allocations in file bucket.c
       896 bytes in          6 allocations in file ccss.c
    618009 bytes in       2091 allocations in file cdr.c
      7023 bytes in          7 allocations in file cel.c
       176 bytes in          2 allocations in file chan_bridge_media.c
   1146800 bytes in         29 allocations in file chan_iax2.c
       176 bytes in          2 allocations in file chan_mgcp.c
      1916 bytes in          3 allocations in file chan_oss.c
       264 bytes in          3 allocations in file chan_phone.c
       176 bytes in          2 allocations in file chan_rtp.c
   6629795 bytes in       9007 allocations in file chan_sip.c
       176 bytes in          2 allocations in file chan_skinny.c
      4272 bytes in          3 allocations in file chan_unistim.c
    166288 bytes in       2104 allocations in file channel.c
    540414 bytes in       1044 allocations in file channel_internal_api.c
        16 bytes in          1 allocations in file chanvars.c
     13320 bytes in        670 allocations in file cli.c
      6176 bytes in         44 allocations in file codec.c
     25920 bytes in          1 allocations in file codec_resample.c
    150980 bytes in         71 allocations in file confbridge/conf_config_parser.c
     89209 bytes in        642 allocations in file config.c
     61592 bytes in        288 allocations in file config_options.c
       248 bytes in          2 allocations in file core_local.c
     20531 bytes in         33 allocations in file data.c
       478 bytes in          8 allocations in file devicestate.c
     79097 bytes in        840 allocations in file dial.c
      9800 bytes in         14 allocations in file endpoints.c
    421528 bytes in       2497 allocations in file features_config.c
      8184 bytes in         31 allocations in file file.c
     30060 bytes in        458 allocations in file format.c
      1016 bytes in          1 allocations in file format_cache.c
   5624824 bytes in      41936 allocations in file format_cap.c
    355731 bytes (    355731 cache) in       1171 allocations in file frame.c
       736 bytes in          1 allocations in file func_dialgroup.c
      1472 bytes in          4 allocations in file hashtab.c
      1997 bytes in         14 allocations in file http.c
       256 bytes in          1 allocations in file iax2/provision.c
     67119 bytes in       1200 allocations in file indications.c
     41144 bytes in         21 allocations in file io.c
 102198920 bytes in     785064 allocations in file json.c
      2296 bytes in          1 allocations in file libasteriskssl.c
     42144 bytes in        614 allocations in file loader.c
      8390 bytes in          6 allocations in file logger.c
    190311 bytes in        286 allocations in file manager.c
      1120 bytes in          1 allocations in file media_cache.c
   3479064 bytes in      16082 allocations in file media_index.c
        96 bytes in          2 allocations in file message.c
       832 bytes in          2 allocations in file named_acl.c
      1760 bytes in          1 allocations in file named_locks.c
       464 bytes in          3 allocations in file netsock.c
       144 bytes in          1 allocations in file parking.c
    162879 bytes in       1889 allocations in file pbx.c
       144 bytes in          1 allocations in file pbx_ael.c
    494168 bytes in        441 allocations in file pbx_app.c
    396384 bytes in        254 allocations in file pbx_functions.c
        60 bytes in          6 allocations in file pbx_ignorepat.c
     10318 bytes in         37 allocations in file pbx_include.c
      9312 bytes in          1 allocations in file pbx_realtime.c
       102 bytes in          2 allocations in file pbx_sw.c
     79183 bytes in       1637 allocations in file pbx_variables.c
        56 bytes in          1 allocations in file presencestate.c
       592 bytes in          3 allocations in file res_ari.c
        83 bytes in          3 allocations in file res_ari_events.c
       448 bytes in          1 allocations in file res_calendar.c
      3215 bytes in          7 allocations in file res_clialiases.c
       256 bytes in          1 allocations in file res_config_sqlite3.c
       304 bytes in          1 allocations in file res_fax.c
        48 bytes in          1 allocations in file res_format_attr_opus.c
       728 bytes in          4 allocations in file res_hep.c
      1443 bytes in         11 allocations in file res_http_websocket.c
      2406 bytes in          8 allocations in file res_musiconhold.c
      2172 bytes in          9 allocations in file res_parking.c
     77645 bytes in        206 allocations in file res_phoneprov.c
   5636436 bytes in       1722 allocations in file res_rtp_asterisk.c
       160 bytes in          1 allocations in file res_smdi.c
       406 bytes in          3 allocations in file res_sorcery_config.c
       992 bytes in          1 allocations in file res_sorcery_memory_cache.c
     23120 bytes in        383 allocations in file res_stasis.c
       736 bytes in          1 allocations in file res_stasis_device_state.c
      2176 bytes in          1 allocations in file res_stasis_playback.c
      2176 bytes in          1 allocations in file res_stasis_recording.c
       376 bytes in          2 allocations in file res_statsd.c
      9152 bytes in          1 allocations in file res_timing_pthread.c
     56848 bytes in        418 allocations in file res_timing_timerfd.c
   1848355 bytes in       6886 allocations in file rtp_engine.c
   1147864 bytes in       3430 allocations in file sched.c
     21400 bytes in        529 allocations in file sip/route.c
     16797 bytes in         73 allocations in file sorcery.c
    454143 bytes in       5527 allocations in file stasis.c
     52767 bytes in        382 allocations in file stasis/app.c
    187488 bytes in        756 allocations in file stasis/control.c
      2232 bytes in          2 allocations in file stasis/messaging.c
    188878 bytes in       2119 allocations in file stasis_cache.c
     50880 bytes in        424 allocations in file stasis_cache_pattern.c
 338322816 bytes in     153504 allocations in file stasis_channels.c
     71345 bytes in        636 allocations in file stasis_message.c
      3672 bytes in         23 allocations in file stasis_message_router.c
     37104 bytes in          2 allocations in file stdtime/localtime.c
  14556648 bytes in      85741 allocations in file stringfields.c
     32335 bytes in        429 allocations in file strings.c
     12375 bytes in        159 allocations in file taskprocessor.c
       512 bytes in          3 allocations in file tcptls.c
     10808 bytes in         16 allocations in file threadpool.c
      6872 bytes in        422 allocations in file timing.c
   1790400 bytes in        248 allocations in file translate.c
       208 bytes in          2 allocations in file udptl.c
     40114 bytes in        485 allocations in file utils.c
   1126513 bytes in       5371 allocations in file xmldoc.c
 490927828 bytes allocated (355731 in caches) in 1154424 selected allocations

 490927828 bytes in all allocations
    292611 bytes in deferred free large allocations
     41378 bytes in deferred free small allocations
    333989 bytes in deferred free allocations
 491261817 bytes in all allocations and deferred free allocations
```

doing memory show allocation stasis_channels.c shows

```
      4048 bytes allocated by ast_channel_snapshot_create() line   215 of stasis_channels.c
       360 bytes allocated by ast_channel_snapshot_create() line   214 of stasis_channels.c
      4048 bytes allocated by ast_channel_snapshot_create() line   215 of stasis_channels.c
       360 bytes allocated by ast_channel_snapshot_create() line   214 of stasis_channels.c
       360 bytes allocated by ast_channel_snapshot_create() line   214 of stasis_channels.c
       360 bytes allocated by ast_channel_snapshot_create() line   214 of stasis_channels.c
       360 bytes allocated by ast_channel_snapshot_create() line   214 of stasis_channels.c
      4048 bytes allocated by ast_channel_snapshot_create() line   215 of stasis_channels.c
      4048 bytes allocated by ast_channel_snapshot_create() line   215 of stasis_channels.c
      4048 bytes allocated by ast_channel_snapshot_create() line   215 of stasis_channels.c
      4048 bytes allocated by ast_channel_snapshot_create() line   215 of stasis_channels.c
.
.
.
.
.
.
.
```



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



More information about the asterisk-bugs mailing list