[Home]

Summary:ASTERISK-06242: res_config_mysql.so crashes when using IAX.
Reporter:Chris Hozian (chozian)Labels:
Date Opened:2006-02-02 14:22:59.000-0600Date Closed:2006-02-02 14:44:22.000-0600
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:CDR/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) gdb_with_bt_and_bt_full_output.txt
Description:I could not find a specific place for this bug report.  There does not appear to be an addons category with various products available.

I recently reprovisioned my IAXy to use port 45690, rather than 4569.  I started Asterisk after making the required configuration changes.  When I pressed a DTMF digit from my IAXy it caused Asterisk to crash.  I tried ringinng that IAXy from a SIP phone.  Asterisk would crash after the first ring.  I thought this was related to using a non-standard IAX port at first.  I noticed some output in gdb from bt referencing mysql from the asterisk-addons package.  I removed each asterisk-addon module one at a time.  I've narrowed the problem down to res_config_mysql.  Asterisk crashes when I ring my IAXy or pass DTMF with my IAXy when res_config_mysql.so is loaded.  It didn't make any difference about my IAX port configuration.  Asterisk works fine in either configuration if res_config_mysql.so is not loaded.

I am running SVN revision 193 of asterisk-addons.

I did this test using the IAX account called "testiaxy".

I have attached the gdb output with bt and bt full after using a "make valgrind".

****** ADDITIONAL INFORMATION ******

Asterisk CLI Output:


^M  == Parsing '/etc/asterisk/asterisk.conf': Found
^M  == Parsing '/etc/asterisk/extconfig.conf': Found
^M  == Binding extensions to odbc/mysql1/extensions_table
^MAsterisk SVN-trunk-r9072M, Copyright (C) 1999 - 2006 Digium, Inc. and others.
^MCreated by Mark Spencer <markster@digium.com>
^MAsterisk comes with ABSOLUTELY NO WARRANTY; type 'show warranty' for details.
^MThis is free software, with components licensed under the GNU General Public
^MLicense version 2 and other licenses; you are welcome to redistribute it under
^Mcertain conditions. Type 'show license' for details.
^M=========================================================================
^MConnected to Asterisk SVN-trunk-r9072M currently running on trance (pid = 8429)
trance*CLI> ^MVerbosity was 3 and is now 4
^M^[[Ktrance*CLI> iax2  debug ^H^H^[[K^H^[[K^H^[[K^H^[[K^H^[[Kde^H^[[K^H^[[K^Hdebug ^M
trance*CLI> ^MIAX2 Debugging Enabled
^M^[[Ktrance*CLI> iax2^MTx-Frame Retry[000] -- OSeqno: 002 ISeqno: 000 Type: IAX     Subclass: PING  
^@   Timestamp: 20011ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@Tx-Frame Retry[000] -- OSeqno: 003 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 20014ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@Tx-Frame Retry[000] -- OSeqno: 002 ISeqno: 000 Type: IAX     Subclass: PING  
^@   Timestamp: 20011ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@Tx-Frame Retry[000] -- OSeqno: 003 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 20014ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@^M^[[Ktrance*CLI> iax2 show peers^MTx-Frame Retry[001] -- OSeqno: 002 ISeqno: 000 Type: IAX     Subclass: PING  
^@   Timestamp: 20011ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@Tx-Frame Retry[001] -- OSeqno: 003 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 20014ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@Tx-Frame Retry[001] -- OSeqno: 002 ISeqno: 000 Type: IAX     Subclass: PING  
^@   Timestamp: 20011ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@Tx-Frame Retry[001] -- OSeqno: 003 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 20014ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@Tx-Frame Retry[002] -- OSeqno: 001 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 10011ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@Tx-Frame Retry[002] -- OSeqno: 001 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 10011ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@^M^[[Ktrance*CLI> iax2 show peers^M
trance*CLI> ^MName/Username    Host                 Mask             Port          Status    
^M^[[Ktrance*CLI> ^Mlincoln/techno   (Unspecified)   (D)  255.255.255.255  0             UNKNOWN  
^M^[[Ktrance*CLI> ^Mtestiaxy2        (Unspecified)   (D)  255.255.255.255  0             UNKNOWN  
^M^[[Ktrance*CLI> ^Mtestiaxy         192.168.254.4   (D)  255.255.255.255  45690         OK (4 ms)
^M^[[Ktrance*CLI> ^Mto-qemuabe/tran  172.20.0.2      (S)  255.255.0.0      4569          UNREACHABLE
^M^[[Ktrance*CLI> ^Miaxtel-out/choz  69.73.19.178    (S)  255.255.255.255  4569          UNREACHABLE
^M^[[Ktrance*CLI> ^Miax-fwd-out/629  192.246.69.186  (S)  255.255.255.255  4569          OK (52 ms)
^M^[[Ktrance*CLI> ^M6 iax2 peers [2 online, 4 offline, 0 unmonitored]
^M^[[Ktrance*CLI> ^MTx-Frame Retry[003] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: REGREQ
^@   Timestamp: 00011ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@   USERNAME        : techno
^@   REFRESH         : 60
^@
^@Tx-Frame Retry[003] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: REGREQ
^@   Timestamp: 00011ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@   USERNAME        : chozian
^@   REFRESH         : 60
^@
^@^M^[[Ktrance*CLI> iax2 show pep^H^[[Kr^H^[[Ker test
testiaxy2  
testiaxy  
^M^[[Ktrance*CLI> iax2 show peer testiaxy^M
trance*CLI> ^M

 * Name       : testiaxy
 Secret       : <Set>
 Context      : from-internal
 Mailbox      :
 Dynamic      : Yes
 Callerid     : "My IAXy" <1000>
 Expire       : 1
 ACL          : No
 Addr->IP     : 192.168.254.4 Port 45690
 Defaddr->IP  : 0.0.0.0 Port 45690
 Username     :
 Codecs       : 0xf804 (ulaw)
 Codec Order  : (ulaw)
 Status       : OK (4 ms)
 Qualify      : every 60000 when OK, every 10000 when UNREACHABLE (sample smoothing Off)

^M^[[Ktrance*CLI> ^MTx-Frame Retry[000] -- OSeqno: 004 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 30011ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@Tx-Frame Retry[000] -- OSeqno: 004 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 30011ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@^M^[[Ktrance*CLI> ^MTx-Frame Retry[002] -- OSeqno: 002 ISeqno: 000 Type: IAX     Subclass: PING  
^@   Timestamp: 20011ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@Tx-Frame Retry[002] -- OSeqno: 003 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 20014ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@Tx-Frame Retry[002] -- OSeqno: 002 ISeqno: 000 Type: IAX     Subclass: PING  
^@   Timestamp: 20011ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@Tx-Frame Retry[002] -- OSeqno: 003 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 20014ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@Tx-Frame Retry[003] -- OSeqno: 001 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 10011ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@Tx-Frame Retry[003] -- OSeqno: 001 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 10011ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@^M^[[Ktrance*CLI> ^MTx-Frame Retry[001] -- OSeqno: 004 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 30011ms  SCall: 00001  DCall: 00000 [172.20.0.2:4569]
^@Tx-Frame Retry[001] -- OSeqno: 004 ISeqno: 000 Type: IAX     Subclass: LAGRQ  
^@   Timestamp: 30011ms  SCall: 00002  DCall: 00000 [69.73.19.178:4569]
^@^M^[[Ktrance*CLI> ^MRx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: NEW    
^@   Timestamp: 00002ms  SCall: 01554  DCall: 00000 [192.168.254.4:45690]
^@   VERSION         : 2
^@   CALLED NUMBER   : TBD
^@   SERVICE IDENT   : 000364000815
^@   PROVISIONG VER  : 2625206899
^@   CALLING NAME    : testiaxy
^@   USERNAME        : testiaxy
^@   FORMAT          : 4
^@   CAPABILITY      : 36
^@
^@Feb  2 14:08:37 DEBUG[8460]: db.c:201 ast_db_get: ^@Unable to find key 'si-000364000815' in family 'iax/provisioning/cache'
^@^M^[[Ktrance*CLI> ^MFeb  2 14:08:37 DEBUG[8460]: iax2-provision.c:250 iax_provision_version: ^@Unable to create provisioning packet for 'si-000364000815'
^@^M^[[Ktrance*CLI> ^MTx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: AUTHREQ
^@^M^[[Ktrance*CLI> ^M   Timestamp: 00002ms  SCall: 00010  DCall: 01554 [192.168.254.4:45690]
^@^M^[[Ktrance*CLI> ^M   AUTHMETHODS     : 3
^@^M^[[Ktrance*CLI> ^M   CHALLENGE       : 815818992
^@^M^[[Ktrance*CLI> ^M   USERNAME        : testiaxy
^@^M^[[Ktrance*CLI> ^M
^@^M^[[Ktrance*CLI> ^MRx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: AUTHREP
^@   Timestamp: 00005ms  SCall: 01554  DCall: 00010 [192.168.254.4:45690]
^@   MD5 RESULT      : f8fd1cec89dd74ad481db02d2be99955
^@   SERVICE IDENT   : 000364000815
^@   PROVISIONG VER  : 2625206899
^@
^@    -- Accepted AUTHENTICATED TBD call from 192.168.254.4
^@Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 002 Type: IAX     Subclass: ACCEPT
^@   Timestamp: 00009ms  SCall: 00010  DCall: 01554 [192.168.254.4:45690]
^@   FORMAT          : 4
^@
^@^M^[[Ktrance*CLI> ^MRx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX     Subclass: ACK    
^@   Timestamp: 00009ms  SCall: 01554  DCall: 00010 [192.168.254.4:45690]
^@^M^[[Ktrance*CLI> ^MRx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX     Subclass: DPREQ  
^@   Timestamp: 01726ms  SCall: 01554  DCall: 00010 [192.168.254.4:45690]
^@   CALLED NUMBER   : 5
^@
^@^M^[[Ktrance*CLI> ^MExecuting last minute cleanups


------------
iax.conf:


[general]

bindaddr=0.0.0.0:4569
bindaddr=0.0.0.0:45690

disallow=all
allow=g729
allow=gsm
allow=ulaw

jitterbuffer=no

register => xxxxxx:xxxxxxxxxx@iax2.fwdnet.net
register => xxxxxxx:xxxxxxxxx@iaxtel.com
register => xxxxxx:xxxx@172.20.0.2

tos=lowdelay

autokill=yes

[guest]
type=user
context=DISABLED
callerid="Guest IAX User"

[iaxfwd]
type=user
context=from-iax-fwd
auth=rsa
inkeys=freeworlddialup

[iax-fwd-out]
type=peer
username=xxxxxx
secret=xxxxxxxxxx
host=iax2.fwdnet.net
qualify=yes

[iaxtel-out]
type=peer
username=xxxxxxx
secret=xxxxxxxxx
host=iaxtel.com
qualify=yes

[qemuabe]
type=user
context=from-internal
secret=xxxxxxxxxxxxxxxxxxx
callerid="QEMUabe" <(000) 000-0000>
deny=0.0.0.0/0.0.0.0
permit=172.20.0.2/16

[to-qemuabe]
type=peer
username=xxxxxx
secret=xxxxxxxxxxxxx
host=172.20.0.2
mask=255.255.0.0
qualify=yes

[priv]
type=user
dbsecret=dundi/secret
context=dundi-priv-local

[testiaxy]
port=45690
type=friend
host=dynamic
secret=xxxxxxxxxxxxxx
context=from-internal
disallow=all
allow=ulaw
callerid="My IAXy" <1000>
trunk=no
qualify=yes

[testiaxy2]
type=friend
host=dynamic
secret=xxxxxxxxxxxxxx
context=from-internal
disallow=all
allow=ulaw
callerid="Soft Client" <3026>
trunk=no
qualify=yes

[lincoln]
type=friend
host=dynamic
context=from-lincoln-test
username=xxxxxx
secret=xxxx
callerid="Lincoln" <(000) 000-0000>
deny=0.0.0.0/0.0.0.0
permit=172.20.0.2/16
disallow=all
allow=g729
qualify=yes


------------


iaxprov.conf:


[default]
codec=ulaw
flags=register,heartbeat
tos=lowdelay

[testtemplate]
server=192.168.254.1
language=en
tos=lowdelay
codec=ulaw
flags += register,heartbeat,debug
flags -= secure

[testiaxy]
template=testtemplate
user=testiaxy
pass=xxxxxxxxxxxxxx
port=45690
serverport=45690


Comments:By: Chris Hozian (chozian) 2006-02-02 14:36:33.000-0600

Ah, this appears to only be a problem when res_config_odbc.so and res_config_mysql.so are loaded at the same time.  It does not cause a problem if I use one or the other.

I have added a "noload => res_config_mysql.so" to my /etc/asterisk/modules.conf to temporarily resolve this problem.

By: Matt O'Gorman (mogorman) 2006-02-02 14:44:12.000-0600

you can not use myodbc and native mysql from the same process