|Summary:||ASTERISK-17788: Memleak with every incoming SUBSCRIBE.|
|Reporter:||Kristijan Vrban (vrban)||Labels:|
|Date Opened:||2011-05-03 07:48:38||Date Closed:||2011-10-10 09:34:32|
|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.