[asterisk-bugs] [Asterisk 0013640]: Crash in cdr code in specific one-touch parking scenario

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Oct 23 16:07:50 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13640 
====================================================================== 
Reported By:                mdu113
Assigned To:                murf
====================================================================== 
Project:                    Asterisk
Issue ID:                   13640
Category:                   CDR/General
Reproducibility:            always
Severity:                   crash
Priority:                   normal
Status:                     assigned
Asterisk Version:           SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  1.4  
SVN Revision (number only!): 147193 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             2008-10-07 12:34 CDT
Last Modified:              2008-10-23 16:07 CDT
====================================================================== 
Summary:                    Crash in cdr code in specific one-touch parking
scenario
Description: 
Asterisk crashes in cdr code in ast_bridge_call() in the following
one-touch parking scenario: A calls B, B answers, A dials feature code to
park B. Asterisk plays MOH to B and parking announcement to A. Now if B
hangs up during parking announcement is being played to the A then asterisk
crashes immediately after it ends playing parking announcement to A.
I'm attaching backtrace in bt.txt
====================================================================== 

---------------------------------------------------------------------- 
 (0094216) murf (administrator) - 2008-10-23 16:07
 http://bugs.digium.com/view.php?id=13640#c94216 
---------------------------------------------------------------------- 
OK, I've tested and reviewed the code once more. The KEEPALIVES after the
ast_bridge_call in both app_dial and app_queue are in place.

Major weaknesses in the code are that when a park is performed, you most
likely will not get the hangup extension, and some channel variables will
not
be updated. 

the planc3 stuff has been tested on a symmetric test set:

1. A calls B; B answers; A parks B; B hangs up while A is getting the
parking
slot announcement, immediately after being put on hold.

2. A calls B; B answers; A parks B; B hangs up after A has been hung up,
but
before the park times out.

3. A calls B; B answers; B parks A; A hangs up while B is getting the
parking slot announcement, immediately after being put on hold.

4. A calls B; B answers; B parks A; A hangs up after B has been hung up,
but before the park times out.

If you can survive all 4 of these scenarios, then parking is solid.

Then, I ran all 4 scenarios under valgrind, and had a problem with 
the pbx thread not dying fast enough, and got some memory violations
when the pbx thread kept running on a freed channel... 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-10-23 16:07 murf           Note Added: 0094216                          
======================================================================




More information about the asterisk-bugs mailing list