[asterisk-bugs] [JIRA] (ASTERISK-26868) Asterisk crash (probably on adding channel to bridge)

Marin Odrljin (JIRA) noreply at issues.asterisk.org
Tue Mar 14 10:45:10 CDT 2017


    [ https://issues.asterisk.org/jira/browse/ASTERISK-26868?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=235790#comment-235790 ] 

Marin Odrljin edited comment on ASTERISK-26868 at 3/14/17 10:44 AM:
--------------------------------------------------------------------

Since this crash happens very rarely, in one of 10 000 to 100 000 calls, I can't turn on debug log whole the time. First time I got this crash, SIP channel (chan_sip) was dialing in, out call was dialed to DAHDI and they were put in the bridge. This happened on asterisk 13.11.2. One month later, the same crash happened on asterisk 14.2.1 and the call flow was exactly the same. Since then I made test app in the environment that will simulate this situation in loop (mass test) and hopefuly catch a backtrace on crash. After probably 30.000 calls and X days it finally happened. If I turned on debug log from the start, I'm not sure how big a debug file would be. Probably too big for the system.

What I have is following (attached):
- java app log: java_app_log.txt
- simulation of cli log: cli_log - simulation.txt
- simulation of debug log: debug_log - simulation.log

Simulation files are made afterwards with new call that didn't crash asterisk, but with exactly the same call flow as it happened while it crashed. I have marked possible crash position in the files with ############ ... Asterisk crash ... ############

I'm not using WebRTC.

Hopefuly this helps.


was (Author: modrljin):
Since this crash happens very rarely, in one of 10 000 to 100 000 calls, I can't turn on debug log whole the time. First time I got this crash, SIP channel (chan_sip) was dialing in, out call was dialed to DAHDI and they were put in the bridge. This happened on asterisk 13.11.2. One month later, the same crash happened on asterisk 14.2.1 and the call flow was exactly the same. Since then I made test app in the environment that will simulate this situation in loop (mass test) and hopefuly catch a backtrace on crash. After probably 30.000 calls and X days it finally happened. If I turned on debug log from the start, I'm not sure how big a debug file would be. Probably too big for the system.

What I have is following (attached):
- java app log: java_app_log.txt
- simulation of cli log: cli_log - simulation.txt
- simulation of debug log: debug_log - simulation.log

Simulation files are made afterwards with new call that didn't crash asterisk, but with exactly the same call flow as it happened while it crashed. I have marked possible crash position in the files with ############ ... Asterisk crash ... ############

Hopefuly this helps.

> Asterisk crash (probably on adding channel to bridge)
> -----------------------------------------------------
>
>                 Key: ASTERISK-26868
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-26868
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Bridges/bridge_simple, Resources/res_ari_bridges
>    Affects Versions: 13.11.2, 14.2.1
>         Environment: Debian 8
>            Reporter: Marin Odrljin
>            Assignee: Unassigned
>         Attachments: backtrace.txt, cli_log - simulation.txt, debug_log - simulation.log, java_app_log.txt
>
>
> Asterisk occasionally crashes while adding channel to bridge with ARI. I'm not sure if this is because of ARI or not, and also not 100% sure if the real problem is adding channel to bridge, but I think so. This happens in one of thousands of calls so it is not so obvious and easy to reproduce. But I got segfault several times in last few months on both asterisk 13.11.2 and 14.2.1.
> I have analyzed my app's log and it looks like every time it happened after the same two actions: 1. enter bridge, 2. answer call. Currently I'm mostly working on my routing app which receives IN call, finds route for OUT call, dials it and joins them together in bridge. So basically the flow of the call is always the same:
> -	IN call comes to asterisk Stasis app
> -	App sends Ring to IN call (channel)
> -	Create bridge
> -	Add IN call (channel) to bridge
> -	Dial on OUT call
> -	Add OUT call (channel) to bridge (after it is answered)
> -	Answer IN call
> Crash always happens on last two steps: add OUT call to bridge and answer IN call.
> Finally, after 1-2 months I managed to catch core dump so I'm attaching backtrace file.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list