Summary:ASTERISK-17788: Memleak with every incoming SUBSCRIBE.
Reporter:Kristijan Vrban (vrban)Labels:
Date Opened:2011-05-03 07:48:38Date Closed:2011-10-10 09:34:32
Versions:1.4.41 Frequency of
Environment:Attachments:( 0) subscribe_test.pl
The Contact address of every incoming SUBSCRIBE is stored im memory.
It happen in when calling "parse_ok_contact" in "handle_request_subscribe"

I simply removed the call to parse_ok_contact, because i dont need the
contact header in the URI in NOTIFY's because i have a opensips between
the phones and asterisk. that's a working workaround for me.

To reproduce this issue, do the following:

Run the attached perl script, that fire out 1000 SUBSCRIBE's
(make sure you have a hint for that extension, and answer to the
SUBSCRIBE's is a 200 OK)
Then let asterisk do a coredump with kill -6 <asterisk_pid>
Then search for the string "memleak" which is part of the contact
address in the 1000 SUBSCRIBE's.

strings <coredumpfile> |grep memleak

the you will see 1000 lines with the same contact address.

So when you have 1000 phones, and every phone has some activ
SUBSCRIBE, then after a week asterisk use 200MB memory just
to store millons lines of contact addresses.

I work with 1.4 but probably this issue is in all other asterisk versions
Comments:By: Kinsey Moore (kmoore) 2011-08-31 15:54:16.447-0500

Since 1.4 and 1.6.x are out of bugfix maintenance, this issue will not be fixed there.  I was unable to reproduce this in 1.8 and trunk, but I may not have all the configs necessary to cause the problem.  Please ensure that you can reproduce this in at least 1.8 if not trunk.  If you can, I will need more information about your configuration.

By: Kinsey Moore (kmoore) 2011-10-10 09:34:05.632-0500

Per the Asterisk maintenance timeline page at http://www.asterisk.org/asterisk-versions maintenance (bug) support for the 1.4 and 1.6.x branches has ended. For continued maintenance support please move to the 1.8 branch which is a long term support (LTS) branch. For more information about branch support, please see https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions.  After testing with Asterisk 1.8, if you find this problem has not been resolved, please open a new issue against Asterisk 1.8.