Summary:ASTERISK-22703: crash: hanging up channels in a softmix bridge
Reporter:John Bigelow (jbigelow)Labels:
Date Opened:2013-10-14 15:47:54Date Closed:2013-11-01 07:16:04
Status:Closed/CompleteComponents:Bridges/bridge_native_rtp Bridges/bridge_softmix
Versions:12.0.0-beta1 Frequency of
Environment:Asterisk trunk r400862Attachments:( 0) backtrace.txt
( 1) backtrace2.txt
( 2) full2.txt
Description:I did the following:
* put two SIP channels in a bridge via ARI (native rtp)
* ensured audio sounded fine
* added a third SIP channel to the bridge (softmix)
* ensured the audio sounded fine
* Hung up channel last channel that was added to the bridge by hanging up phone
* Asterisk crashed

I've attached the backtrace and Asterisk full log.
Comments:By: Matt Jordan (mjordan) 2013-10-14 16:10:15.154-0500

Go ahead and comment on that review and point Kinsey to this issue.

I'd rather not have this explode out of proportion, and we should probably figure out if that patch was the cause of this issue.

By: Kinsey Moore (kmoore) 2013-10-15 09:31:06.124-0500

Based on what's going on in the backtrace I don't think this is related to the patch, but we're going to poke at the test scenario a little more to see if it can be reproduced with and without the patch.

By: Kinsey Moore (kmoore) 2013-10-15 09:42:59.990-0500

From further examination of the core file, it appears that the callback and failed callback do not point to any functions registered with after-bridge callbacks. This could mean that the node was freed or is being overwritten by something else that shouldn't have access to it.

By: John Bigelow (jbigelow) 2013-10-15 09:43:38.069-0500

I've updated this issue as I've been able to reproduce this without the patch from review 2905 and the backtrace is the same so I won't upload the new one.

By: Matt DiMeo (mdimeo) 2013-10-21 17:21:42.649-0500

I see possibly the same crash all the time on the current trunk.

dial into my stasis app from my sip phone

Answer with stasis:

calling http.request with: {"path":"/ari/channels/1381953659.0/answer","method":"POST","hostname":"","port":8088,"auth":"x:x"}

Start music on hold:

calling http.request with: {"path":"/ari/channels/1381953659.0/mohstart?mohClass=","method":"POST","urlParams":{"mohClass":""},"hostname":"","port":8088,"auth":"x:x"}

My app dials to another sip phone:

calling http.request with: {"path":"/ari/channels?endpoint=SIP%2F1001&context=&extension=&priority=&app=queue&appArgs=agent%2C2%2C1381953657375%2C801&callerId=my%20first%20queue!%3C801%3E&timeout=30","method":"POST","urlParams":{"endpoint":"SIP/1001","app":"queue","appArgs":"agent,2,1381953657375,801","callerId":"my first queue!<801>","timeout":30},"hostname":"","port":8088,"auth":"x:x"}

App creates a bridge:

calling http.request with: {"path":"/ari/bridges?type=","method":"POST","urlParams":{"type":""},"hostname":"","port":8088,"auth":"x:x"}

App bridges the two channels:

calling http.request with: {"path":"/ari/bridges/9b2f06bd-e21c-4310-9364-058e82871476/addChannel?channel=1381953659.0%2C1381953659.1","method":"POST","urlParams":{"channel":"1381953659.0,1381953659.1"},"hostname":"","port":8088,"auth":"x:x"}

Then I hang up the first phone that dialed into the app.

Then I hang up the second phone, and asterisk crashes.

By: Matt DiMeo (mdimeo) 2013-10-21 17:22:10.001-0500

backtrace for my crash