Summary:ASTERISK-06306: duplicated IAX peers result in crash on startup
Reporter:Matt Ranney (mjrmjr2)Labels:
Date Opened:2006-02-13 13:57:58.000-0600Date Closed:2006-02-13 16:31:42.000-0600
Versions:Frequency of
Description:If a dynamic peer is duplicated in iax.conf, asterisk will crash if the peer's IP address is saved in astdb.  Starting asterisk with an empty astdb work fine, peer registers, etc.  However, after the peer registers, if asterisk is restarted, it will crash thusly:

[chan_iax2.so] => (Inter Asterisk eXchange (Ver 2))
 == Registered custom function IAXPEER
 == Registered application 'IAX2Provision'
 == Manager registered action IAXpeers
 == Manager registered action IAXnetstats
 == Parsing '/etc/asterisk/iax.conf': Found
   -- Seeding 'OAK1-SIT3' at for 60
   -- Seeding 'OAK1-SIT7' at for 60
   -- Seeding 'OAK1-SIT100' at for 60
   -- Seeding 'OAK1-SIT100' at for 60
Ouch ... error while writing audio data: : Broken pipe
Segmentation fault (core dumped)

(gdb) where
#0  0x00469635 in pthread_kill () from /lib/tls/libpthread.so.0
#1  0xffffffff in ?? ()
#2  0x000003ea in ?? ()
#3  0x00ef2648 in iax2_send (pvt=0x830a5a0, f=0xbfe1e320, ts=3, seqno=-1, now=0,
   transfer=0, final=3) at chan_iax2.c:2510
#4  0x00eed425 in send_command (i=0x3, type=6 '\006', command=3, ts=3, data=0x3 "",
   datalen=3, seqno=3) at chan_iax2.c:4642
ASTERISK-1  0x00eedde3 in iax2_poke_peer (peer=0x830a060, heldcall=6) at chan_iax2.c:7817
ASTERISK-2  0x00eed7a9 in reg_source_db (p=0x830a060) at chan_iax2.c:5600
ASTERISK-3  0x00eff17b in set_config (config_file=0xf0c4f3 "iax.conf", reload=0)
   at chan_iax2.c:8799
ASTERISK-4  0x00ef0a03 in load_module () at chan_iax2.c:9588
ASTERISK-5  0x0805c3e3 in __load_resource (resource_name=0x82dfc5f "chan_iax2.so", cfg=0x21)
   at loader.c:413
ASTERISK-6 0x0805bbbb in load_modules (preload_only=-1075714176) at loader.c:553
ASTERISK-7 0x080b5069 in main (argc=-1075713712, argv=0xbfe1eb54) at asterisk.c:2349
Comments:By: Kevin P. Fleming (kpfleming) 2006-02-13 16:31:29.000-0600

This is a configuration issue. There are many, many ways to make Asterisk misbehave due to bad configurations... we can't solve them.