[asterisk-bugs] [JIRA] (ASTERISK-29130) Prometheus Segmentation Fault

Francisco Correia (JIRA) noreply at issues.asterisk.org
Fri Oct 16 09:11:36 CDT 2020


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

Francisco Correia edited comment on ASTERISK-29130 at 10/16/20 9:11 AM:
------------------------------------------------------------------------

Steps to Reproduce
 - Prometheus resource enabled and configured no 8088/metrics, and a prometheus server is scraping metrics with a 30 seconds interval

1) Call enters a Stasis application
2) Stasis application starts playing music on hold on the caller channel
3) Stasis application dials one of the dummy extensions with a 10 second timeout
4) Repeats dial until some extension answer
Asterisk crashes,
   I think the crash is a consequence of prometheus server invoking the metrics endpoint on asterisk while a call is active

{noformat}
; Dialplan for the dummy callee 
exten => 9980,1,NoOp(Calling Dummy Agent 9980)
 same =>      n,Set(LOCAL_AGENT_ANSWER_PROBABILITY=80)
 same =>      n,Set(LOCAL_AGENT_NAME=Dummy Agent 9980)
 same =>      n,Goto(local-agent-diaplan,s,1)



; Dummy Agent Dial Plan
[local-agent-diaplan]
exten => s,1,NoOp()
 same =>      n,DumpChan()
 same =>      n,Ringing()
 same =>      n,GotoIf($[${RAND(1,100)} < ${LOCAL_AGENT_ANSWER_PROBABILITY}]?answer:ignore)
 same =>      n(answer),NoOp(${LOCAL_AGENT_NAME} will take the call in a moment)
 same =>      n,Wait(${RAND(10,25)})
 same =>      n,Answer()
 same =>      n,Set(TIMEOUT(absolute)=${RAND(60,350)})
 same =>      n(playloop),Playback(tt-monkeys)
 same =>      n,Goto(playloop)
 same =>      n(ignore),NoOp(${LOCAL_AGENT_NAME} is busy doing something else, who knows what)
 same =>      n,Wait(${RAND(10,60)})
 same =>      n,Hangup()
{noformat}



was (Author: fcorreia):
Steps to Reproduce
 - Prometheus resource enabled and configured no 8088/metrics, and a prometheus server is scraping metrics with a 30 seconds interval

1) Call enters a Stasis application
2) Stasis application starts playing music on hold on the caller channel
3) Stasis application dials one of the dummy extensions with a 10 second timeout
4) Repeats dial until some extension answer
Asterisk crashes,
   I think the crash is a consequence of prometheus server invoking the metrics endpoint on asterisk while a call is active

{noformat}
; Dialplan for the dummy callee 
exten => 9980,1,NoOp(Calling Tiburcio Saidi)
 same =>      n,Set(LOCAL_AGENT_ANSWER_PROBABILITY=80)
 same =>      n,Set(LOCAL_AGENT_NAME=Dummy Agent)
 same =>      n,Goto(local-agent-diaplan,s,1)



; Dummy Agent Dial Plan
[local-agent-diaplan]
exten => s,1,NoOp()
 same =>      n,DumpChan()
 same =>      n,Ringing()
 same =>      n,GotoIf($[${RAND(1,100)} < ${LOCAL_AGENT_ANSWER_PROBABILITY}]?answer:ignore)
 same =>      n(answer),NoOp(${LOCAL_AGENT_NAME} will take the call in a moment)
 same =>      n,Wait(${RAND(10,25)})
 same =>      n,Answer()
 same =>      n,Set(TIMEOUT(absolute)=${RAND(60,350)})
 same =>      n(playloop),Playback(tt-monkeys)
 same =>      n,Goto(playloop)
 same =>      n(ignore),NoOp(${LOCAL_AGENT_NAME} is busy doing something else, who knows what)
 same =>      n,Wait(${RAND(10,60)})
 same =>      n,Hangup()
{noformat}


> Prometheus Segmentation Fault
> -----------------------------
>
>                 Key: ASTERISK-29130
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29130
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/General
>    Affects Versions: 18.0.0
>         Environment: OS: CentOS 7
> Version: asterisk-18.0.0-rc2.tar.gz
>            Reporter: Francisco Correia
>            Assignee: Unassigned
>            Severity: Minor
>         Attachments: core.1383-brief.txt, core.1383-full.txt, core.1383-info.txt, core.1383-locks.txt, core.1383-thread1.txt
>
>
> Prometheus Resource while building metrics response creates segmentation fault during active call on a Stasis Application.
> {noformat}
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
> Core was generated by `/usr/sbin/asterisk -f -g -C /etc/asterisk/asterisk.conf'.
> Program terminated with signal 11, Segmentation fault.
> #0  bridges_scrape_cb (response=0x7f337c0ccc78) at prometheus/bridges.c:129
> 129				PROMETHEUS_METRIC_SET_LABEL(&bridge_metrics[index], 1, "id", (snapshot->uniqueid));
> {noformat}



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



More information about the asterisk-bugs mailing list