[asterisk-bugs] [Asterisk 0018032]: Asterisk is core dumping with LibPRI

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Sep 23 03:26:32 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=18032 
====================================================================== 
Reported By:                schmoozecom
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   18032
Category:                   Applications/General
Reproducibility:            random
Severity:                   crash
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.4.35 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-09-22 17:44 CDT
Last Modified:              2010-09-23 03:26 CDT
====================================================================== 
Summary:                    Asterisk is core dumping with LibPRI
Description: 
We have a system using asterisk 1.4.32 and libpri libpri-1.4.11.4.  I have
attached a backtrace that shows it is failing with libpri.  The logs always
show the following line right before asterisk crahes.

[Sep 22 14:57:16] VERBOSE[21597] logger.c:     -- Executing [s at ivr-2:6]
GotoIf("DAHDI/1-1", "0?begin") in new stack
[Sep 22 14:57:16] VERBOSE[21597] logger.c:     -- Executing [s at ivr-2:7]
Answer("DAHDI/1-1", "") in new stack
[Sep 22 14:57:16] VERBOSE[21597] logger.c:     -- Executing [s at ivr-2:8]
Wait("DAHDI/1-1", "1") in new stack
[Sep 22 14:57:16] VERBOSE[26867] logger.c:     -- B-channel 0/6
successfully restarted on span 1
[Sep 22 14:57:16] VERBOSE[26867] logger.c:     -- Channel 0/1, span 1 got
hangup, cause 81
[Sep 22 14:57:16] VERBOSE[21597] logger.c:   == Spawn extension (ivr-2, s,
8) exited non-zero on 'DAHDI/1-1'
[Sep 22 14:57:16] VERBOSE[21597] logger.c:     -- Executing [h at ivr-2:1]
Hangup("DAHDI/1-1", "") in new stack
[Sep 22 14:57:16] VERBOSE[21597] logger.c:   == Spawn extension (ivr-2, h,
1) exited non-zero on 'DAHDI/1-1'
[Sep 22 14:57:16] DEBUG[21597] chan_dahdi.c: Set option AUDIO MODE, value:
ON(1) on DAHDI/1-1
[Sep 22 14:57:16] DEBUG[21597] chan_dahdi.c: Already hungup...  Calling
hangup once, and clearing call
[Sep 22 14:57:21] VERBOSE[21632] logger.c: Asterisk Event Logger Started
/var/log/asterisk/event_log
[Sep 22 14:57:21] VERBOSE[21632] logger.c: Asterisk Dynamic Loader
Starting:
[Sep 22 14:57:21] VERBOSE[21632] logger.c:   == Parsing
'/etc/asterisk/modules.conf': [Sep 22 14:57:21] VERBOSE[21632] logger.c:
Found
[Sep 22 14:57:21] NOTICE[21632] loader.c: 3 modules will be loaded.
[Sep 22 14:57:21] VERBOSE[21632] logger.c: res_speech.so => (Generic
Speech Recognition API)
[Sep 22 14:57:21] VERBOSE[21632] logger.c:   == Parsing
'/etc/asterisk/extensions.conf': [Sep 22 14:57:21] VERBOSE[21632] logger.c:
Found
[Sep 22 14:57:21] VERBOSE[21632] logger.c:   == Parsing
'/etc/asterisk/extensions_override_freepbx.conf': [Sep 22 14:57:21]
VERBOSE[21632] logger.c: Found
[Sep 22 14:57:21] VERBOSE[21632] logger.c:   == Parsing
'/etc/asterisk/extensions_additional.conf': [Sep 22 14:57:21]
VERBOSE[21632] logger.c: Found
[Sep 22 14:57:21] VERBOSE[21632] logger.c:   == Parsing
'/etc/asterisk/globals_custom.conf': [Sep 22 14:57:21] VERBOSE[21632]
logger.c: Found
[Sep 22 14:57:21] VERBOSE[21632] logger.c:   == Parsing
'/etc/asterisk/extensions_custom.conf': [Sep 22 14:57:21] VERBOSE[21632]
logger.c: Found
[Sep 22 14:57:21] VERBOSE[21632] logger.c:   == Parsing
'/etc/asterisk/extensions_aastra.conf': [Sep 22 14:57:21] VERBOSE[21632]
logger.c: Found
[Sep 22 14:57:21] VERBOSE[21632] logger.c:   == Setting global variable
'FMDEVSTATE' to 'TRUE'
[Sep 22 14:57:21] VERBOSE[21632] logger.c:   == Setting global variable
'CFDEVSTATE' to 'TRUE'
[Sep 22 14:57:21] VERBOSE[21632] logger.c:   == Setting global variable
'DNDDEVSTATE' to 'TRUE'




====================================================================== 

---------------------------------------------------------------------- 
 (0127307) alecdavis (manager) - 2010-09-23 03:26
 https://issues.asterisk.org/view.php?id=18032#c127307 
---------------------------------------------------------------------- 
your backtrace-bt-btfull.txt shows
https://issues.asterisk.org/view.php?id=2  0x008adad0 in __q931_hangup
(ctrl=<value optimized out>, c=0xaf021b60,
cause=16) at q931.c:5464
	disconnect = 1
	release_compl = 0
	t303_was_running = 0
https://issues.asterisk.org/view.php?id=3  0x0089fec8 in pri_hangup (pri=0x0,
call=0x4e203a74, cause=1310734964)
at pri.c:984

But in the pri.c:pri_hangup the first test is 
       if (!pri || !call)
                return -1;

Where in you case 'pri' was 0.
so it shouldn't execute any further. and not execute
     return q931_hangup(pri, call, cause);

I have seen evidence of editors not liking (struct pri *pri)
And in other place in the code this has become (struct pri *ctrl)

So try this patch. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-09-23 03:26 alecdavis      Note Added: 0127307                          
======================================================================




More information about the asterisk-bugs mailing list