[asterisk-dev] IAX2 changes - thank you!
Russell Bryant
russell at digium.com
Tue Aug 14 16:26:53 CDT 2007
Loic Didelot wrote:
> Hello,
> for now I did some basic testing. So I flooded asterisk with 800
> registrations, one every millisecond. Yep, this is a lot but no problem
> for SIP at all. It works for IAX too as long as "rtcachefriends=no".
>
> Because I like being nice with asterisk I even try to reload asterisk
> during the flood process. Everything works fine except if
> rtcachefriends=yes. In that case I need to wait only a few seconds and
> asterisk crashes. This problem is in asterisk since always.
>
> The last thing I see on my CLI is:
>
> *** glibc detected *** corrupted double-linked list: 0x0000002a9e649f40
> ***
> Aborted
I have been working on this test system for the past couple of days. Yesterday,
I fixed a bunch of deadlocks in chan_iax2 that were exposed by this load test.
Today, I have been working on the crash.
It was trivial to make this system crash, as described above. However, every
backtrace was different. Looking at each one led me to the conclusion that it
was due to poor (lack of) reference counting of the iax2_peer objects.
I wrote a patch to fix this but I would like to get some testing on it before
commit. Also, the ideal solution would be to go ahead and convert it to use
astobj2, but I'll leave that for another day. It appears to be working on this
test system.
The code, a branch off of 1.4, is here if anyone is interested in trying it out:
$ svn co http://svn.digium.com/svn/asterisk/team/russell/iax_refcount
For the actual code, see this commit:
http://lists.digium.com/pipermail/asterisk-commits/2007-August/015465.html
--
Russell Bryant
Software Engineer
Digium, Inc.
More information about the asterisk-dev
mailing list