[asterisk-bugs] [Asterisk 0013749]: IAX2 storm (type 4, subtype 20: AST_CONTROL_SRCUPDATE)

Asterisk Bug Tracker noreply at bugs.digium.com
Wed Nov 12 01:53:49 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13749 
====================================================================== 
Reported By:                adiemus
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   13749
Category:                   Channels/chan_iax2
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     acknowledged
Asterisk Version:           1.4.22 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             2008-10-20 17:46 CDT
Last Modified:              2008-11-12 01:53 CST
====================================================================== 
Summary:                    IAX2 storm (type 4, subtype 20:
AST_CONTROL_SRCUPDATE)
Description: 
This is a rather odd issue to describe.

In simplest terms, I have a server connected via IAX2 to another server. 
The configuration had been working fine through at least 1.4.18.  However,
between then an 1.4.21.2, this issue began occuring for all calls from
server A to server B.  (But oddly, not for calls from B->A)  The issue
persists in 1.4.22.

When a call is placed through server A to server B via IAX2, server A
sends a torrent of retransmitted packets right after the initial call
setup.  This storm eats up more than 20 Mbit and is reproducible for every
call from server A to server B.  If I replicate the configuration of server
B onto server C, the behavior remains the same.  Calls from server A to
server C show the same "packet storm" bug.

I have complete pcap captures of both sides of the connection, if that's
useful.  However, the short overview from server A's perspective is:

A -> B NEW
B -> A AUTHREQ
A -> B AUTHREP
B -> A ACCEPT
A -> B ACK
B -> A ANSWER
A -> B ACK
A -> B CONTROL (subclass = 20, AST_CONTROL_SRCUPDATE)
A -> B CONTROL (subclass = 20, AST_CONTROL_SRCUPDATE) [retrans]
<storm of identical, retransmitted packets>

This is a serious issue for us as the storm is enough to saturate the
internet connections both of LAN A and LAN B.  (Packet rate is into the
tens or hundreds of thousands per second)

I'm happy to provide more information, but I don't know what else would be
useful.

The iax.conf entry for server B on server A looks like:
[serverB]
type=user
auth=md5
secret=redacted
transfer=no
context=from-serverB
jitterbuffer=no

[serverB]
type=peer
auth=md5
secret=redacted
username=serverA
transfer=no
host=dynamic
disallow=all
allow=gsm
jitterbuffer=no

The config for serverA on serverB:
register => serverB:redacted at serverA.fqdn

[serverA]
type=user
auth=md5
secret=redacted
transfer=no
context=from-serverA
jitterbuffer=yes

[serverA]
type=peer
auth=md5
secret=redacted
username=serverB
host=serverA.fqdn
jitterbuffer=yes
trunk=no
trunktimestamps=no
disallow=all
allow=gsm

In the interim, I'll see if I can do a binary search to find in what
version this behavior started.
====================================================================== 

---------------------------------------------------------------------- 
 (0094772) adiemus (reporter) - 2008-11-12 01:53
 http://bugs.digium.com/view.php?id=13749#c94772 
---------------------------------------------------------------------- 
I could do the netem tests (scaled back a bit, because I don't have
physical access to this system and 80% is rather a lot of loss, as you
pointed out), but I'm not sure what good it would do.  There's no need to
excite the phenomenon.  If you look at the pcap capture you'll see that it
happens basically immediately once the call is set up.  The results are
quite reproducible on this system, so far with every external asterisk box
I've tried against.

As to the exact SVN revisions, I'm not sure I know how to translate the
releases into SVN revs.  Doing it the simple minded way from the web
interface on svn.asterisk.org, it looks like:

1.4.19-rc1 - Works  - rev 105671
1.4.19-rc2 - Broken - rev 107529

Not sure if that's what you're after, but hopefully it helps.

Looking through the SVN logs for chan_iax2.c, I have to say that this
issue sounds a LOT like the one mentioned in the commit for rev 115565, but
instead of a storm of VNAK's, it's a storm of CONTROL's:

http://svn.digium.com/view/asterisk?view=rev&revision=115565 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-11-12 01:53 adiemus        Note Added: 0094772                          
======================================================================




More information about the asterisk-bugs mailing list