[Home]

Summary:ASTERISK-17325: Asterisk segfaults after a number of unsuccessfull CDR submits
Reporter:Anton Vazir (vazir)Labels:
Date Opened:2011-02-01 02:52:51.000-0600Date Closed:2011-03-08 15:08:08.000-0600
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:CDR/cdr_adaptive_odbc
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) backtrace.txt
Description:After a few SQL errors and reconnects, asterisk segfaults. Seems this have been fixed in cdr_pgsql

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

Some logs
[2011-02-01 10:44:41] WARNING[8135] cdr_adaptive_odbc.c: CDR variable user_rate is not an numeric type.                                                                              
[2011-02-01 10:44:41] WARNING[8135] cdr_adaptive_odbc.c: CDR variable calling_acc is not an integer.                                                                                  
[2011-02-01 10:44:41] WARNING[8135] res_odbc.c: SQL Execute returned an error -1: 22001: ERROR: value too long for type character varying(10);                                        
[2011-02-01 10:44:41] WARNING[8135] res_odbc.c: SQL Execute error -1! Attempting a reconnect...                                                                                      
[2011-02-01 10:44:41] WARNING[8135] res_odbc.c: Connection is down attempting to reconnect...                                                                                        
[2011-02-01 10:44:41] WARNING[8134] func_odbc.c: SQL Alloc Handle failed (-1)!                                                                                                        
[2011-02-01 10:44:41] WARNING[8134] res_odbc.c: SQL Exec Direct failed.  Attempting a reconnect...                                                                                    
[2011-02-01 10:44:41] NOTICE[8135] res_odbc.c: Connecting ngn                                                                                                                        
[2011-02-01 10:44:41] NOTICE[8135] res_odbc.c: res_odbc: Connected to ngn [ngndb]                                                                                                    
[2011-02-01 10:44:41] WARNING[8135] res_odbc.c: SQL Execute returned an error -1: 22001: ERROR: value too long for type character varying(10);                                        
[2011-02-01 10:44:41] WARNING[8135] res_odbc.c: SQL Execute error -1! Attempting a reconnect...                                                                                      
[2011-02-01 10:44:41] NOTICE[8134] res_odbc.c: Re-connecting ngn                                                                                                                      
[2011-02-01 10:44:41] NOTICE[8134] res_odbc.c: res_odbc: Connected to ngn [ngndb]                                                                                                    
[2011-02-01 10:44:45] NOTICE[8152] cdr.c: CDR simple logging enabled.                                                                                                                
**************(SEGFAULT IS HERE)
[2011-02-01 10:44:45] NOTICE[8152] loader.c: 195 modules will be loaded.                                                                                                              

Backtrace

Loaded symbols for /lib/libnss_dns.so.2
Core was generated by `/usr/sbin/asterisk -f -vvvg -c'.
Program terminated with signal 11, Segmentation fault.
#0  0x00007fb5cc0c9330 in ?? () from /usr/lib/libodbc.so.1
(gdb) bt
#0  0x00007fb5cc0c9330 in ?? () from /usr/lib/libodbc.so.1
#1  0x00007fb5cc32011c in ast_odbc_prepare_and_execute (obj=0x24b35a8, prepare_cb=<value optimized out>, data=<value optimized out>) at res_odbc.c:629
#2  0x00007fb5c07627fc in odbc_log (cdr=0x7fb5d0583300) at cdr_adaptive_odbc.c:657
#3  0x000000000044e9a0 in post_cdr (cdr=0x7fb5d0583300) at cdr.c:1061
#4  0x000000000044ebad in ast_cdr_detach (cdr=0x7fb5d0583300) at cdr.c:1267
ASTERISK-1  0x0000000000459243 in ast_hangup (chan=0x7fb5d052d290) at channel.c:1884
ASTERISK-2  0x00000000004cd994 in __ast_pbx_run (c=0x7fb5d052d290, args=<value optimized out>) at pbx.c:4514
ASTERISK-3  0x00000000004ce6a9 in pbx_thread (data=0x7fb5cc315c20) at pbx.c:4606
ASTERISK-4  0x000000000050b86a in dummy_start (data=<value optimized out>) at utils.c:967
ASTERISK-5  0x00007fb5d57078ba in start_thread () from /lib/libpthread.so.0
ASTERISK-6 0x00007fb5d5f4002d in clone () from /lib/libc.so.6
ASTERISK-7 0x0000000000000000 in ?? ()
(gdb)
Comments:By: Leif Madsen (lmadsen) 2011-02-07 13:54:30.000-0600

You must provide a proper backtrace per https://wiki.asterisk.org/wiki/display/AST/Getting+a+Backtrace

Please attach the full backtrace as a text document to this issue.

By: Anton Vazir (vazir) 2011-02-08 02:54:21.000-0600

Backtrace uploaded

By: Anton Vazir (vazir) 2011-02-10 09:55:48.000-0600

Reproducibility should be changed to ALWAYS

By: Leif Madsen (lmadsen) 2011-02-10 12:53:57.000-0600

You still have <value_optimized_out> which means you did not compile with DONT_OPTIMIZE per the page I provided.

By: Walter Doekes (wdoekes) 2011-02-10 13:43:21.000-0600

See ASTERISK-16902

By: Leif Madsen (lmadsen) 2011-03-08 15:08:08.000-0600

Fixed in related issue.