[asterisk-bugs] [JIRA] (ASTERISK-26373) channel: Crash when appending cap during dialing to a channel, when built with debugging compiler options

Denis S.Davydov (JIRA) noreply at issues.asterisk.org
Tue Sep 27 06:24:01 CDT 2016


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

Denis S.Davydov commented on ASTERISK-26373:
--------------------------------------------

Today was a crash. The last crash has been at 19/09/16 12:42. So here is details:

{code}
Core was generated by `/usr/local/asterisk-13.11.2.nodebug/sbin/asterisk -f -vvvg -c'.
Program terminated with signal 11, Segmentation fault.
#0  ast_format_cap_append_from_cap (dst=0x7f6dcadc6d60, src=0x7f6dfab69990, type=AST_MEDIA_TYPE_AUDIO) at format_cap.c:308
308			struct format_cap_framed *framed = AST_VECTOR_GET(&src->preference_order, idx);
#0  ast_format_cap_append_from_cap (dst=0x7f6dcadc6d60, src=0x7f6dfab69990, type=AST_MEDIA_TYPE_AUDIO) at format_cap.c:308
        __idx = 0
        framed = <value optimized out>
        idx = <value optimized out>
        res = <value optimized out>
#1  0x00000000004aad10 in ast_request (type=0x7f6df1f75cd0 "SIP", request_cap=0x7f6dfab69990, assignedids=0x0, requestor=0x7f6dfb4e9288, addr=0x7f6df1f75cd4 "3124", cause=0x7f6df1f75ecc) at channel.c:6037
        tmp_cap = 0x7f6dcadc6d60
        tmp_fmt = 0x0
        best_audio_fmt = 0x0
        joint_cap = <value optimized out>
        chan = 0x2386c50
        c = <value optimized out>
        res = <value optimized out>
        foo = 32621
        __PRETTY_FUNCTION__ = "ast_request"
#2  0x00007f6e6c366083 in ring_entry (qe=0x7f6df1f77360, tmp=0x7f6dcacb2460, busies=0x7f6df1f76cb8) at app_queue.c:4317
        res = <value optimized out>
        status = 0
        tech = "SIP\000\063\061\062\064\000\250\000\000\000\000\000\000\000\030\350\312m\177\000\000\320\001\000\000\000\000\000\000 \341x\331\t\000\000\000\"\253G\331\070\000\000\000\000\030\350\312m\177\000\000\240O\326\312m\177\000\000\320\001\000\000\000\000\000\000\270\252\330\312m\177\000\000\310L\325\312m\177\000\000\270\252\330\312m\177\000\000\210O\326\312m\177\000\000\f\213^\000\000\000\000\000\003\000\000\000\034\000\000\000\b\000\000\000\033\000\000\000\b\000\000\000t\000\000\000\002\000\000\000\016\001", '\000' <repeats 26 times>"\301, \207\002\000\000\000\000\000\223-\352W\000\000\000\000\301\207\002\000\000\000\000\000\223-\352W\000\000\000\000\301\207\002\000\000\000\000\000q\021\000\000\000\000\000\000\320P\312\312m\177\000\000\244\230\067ln\177\000\000\260\335F\373m\177\000\000\000\000\000\000\000\000\000\000L\217\067ln\177\000"
        location = 0x7f6df1f75cd4 "3124"
        macrocontext = <value optimized out>
        macroexten = <value optimized out>
        blob = 0x0
        __PRETTY_FUNCTION__ = "ring_entry"
{code}

Suspect that it caused by call on 3124 via queue. I've attached log files. Incoming call was from 9057565964 to 4957390491. Configuration for that call is as follows:

sip.conf:
{code}
[general]
transport=udp
allowguest=no
allowoverlap=no
language=ru
compactheaders=no
rtptimeout=60
rtpholdtimeout=300
session-timers=refuse
callcounter=yes
directmedia=no
directrtpsetup=no
rtcachefriends=yes
rtupdate=yes
rtautoclear=no
rtautoclear=no
ignoreregexpire=yes
allowsubscribe=yes
alwaysauthreject=yes
use_q850_reason=yes
faxdetect=no
t38pt_udptl=no
sendrpid=rpid
trustrpid=yes
nat=force_rport,comedia
progressinband=yes
externip=X.X.X.X
localnet=192.168.0.0/255.255.0.0
localnet=212.248.28.10

[mts]
type=peer
trunkname=mts
host=212.248.28.10
context=from-trunk
insecure=port,invite
disallow=all
allow = alaw,ulaw
nat = no
directmedia = no
dtmfmode = rfc2833
qualify=yes

[friend](!)
type=friend
host=dynamic
secret=verysecret
context=from-phone
t38pt_usertpsource=yes
insecure=invite,port
directmedia=no
disallow=all
allow=ulaw,alaw,g722,g729
qualify=yes
canreinvite=yes
busylevel=1
dtmfmode=rfc2833
deny = 0.0.0.0/0.0.0.0
permit = 192.168.0.0/255.255.0.0

...
[3012](friend)
callerid=ALICE <3012>
accountcode=3012

[3012](friend)
callerid=BOB <3013>
accountcode=3013
{code}

We've got direct link for this provider, so it is on localnet (212.248.28.10 accessed via private address). On other hands we have 

extensions.conf:
{code}
[from-trunk]
exten = _X.,1,Set(CDR(direction)=2)
 same = n,Set(GROUP()=lines_${CHANNEL(peername)})
 same = n,Verbose(1,Incoming call from ${CDR(src)} to ${EXTEN} via ${CHANNEL(peername)})
 same = n,Verbose(1,Concurent lines on ${CHANNEL(peername)} is ${GROUP_COUNT(lines_${CHANNEL(peername)})})
 same = n,GotoIf($[${BLACKLIST()}]?blocked,1)
 same = n,Gosub(record,${EXTEN},2)
 same = n,Goto(incoming,${EXTEN},1)

[incoming]
exten = 4957390491,1,Goto(otp,s,1)

[otp]
exten = s,1,Answer
 same = n,Background(/usr/local/asterisk/var/lib/asterisk/sounds/ru/ivr/9)
 same = n,WaitExten(2)
 same = n,Goto(otp,1,1)
 same = n,Hangup()

exten = 1,1,NoOp()
 same = n,Set(__WAIT4ANSWER=${EPOCH})
 same = n,Queue(OTP_3602,t,,,300,,,wait4answer)
 same = n,Hangup()

exten = 2,1,Goto(otp,1,1)

exten = i,1,Playback(invalid)
 same = n,Goto(otp,s,1)

exten = t,1,Playback(vm-goodbye)
 same = n,Hangup()
{code}

queues.conf:
{code}
[general]
monitor-type = MixMonitor
persistentmembers = yes
setinterfacevar=yes
setqueueentryvar=yes
setqueuevar=yes

[queue_template](!)
musicclass=default
musiconhold=default
joinempty=yes
leavewhenempty=no
strategy=rrmemory
retry = 1

[OTP_3602](queue_template)
timeout = 14
periodic-announce = /usr/local/asterisk/var/lib/asterisk/sounds/ru/ivr/8
periodic-announce-frequency = 30
relative-periodic-announce = yes
announce-holdtime = no
{code}

Prefered codec on the phones: g722, ulaw, alaw, g729. Information for peer 3124:

{code}
# asterisk -rx 'sip show peer 3124'

  * Name       : 3124
  Description  :
  Secret       : <Set>
  MD5Secret    : <Not set>
  Remote Secret: <Not set>
  Context      : from-phone
  Record On feature : automon
  Record Off feature : automon
  Subscr.Cont. : <Not set>
  Language     : ru
  Tonezone     : <Not set>
  Accountcode  : 3124
  AMA flags    : Unknown
  Transfer mode: open
  CallingPres  : Presentation Allowed, Not Screened
  Callgroup    :
  Pickupgroup  :
  Named Callgr :
  Nam. Pickupgr:
  MOH Suggest  :
  Mailbox      :
  VM Extension : asterisk
  LastMsgsSent : 0/0
  Call limit   : 2147483647
  Max forwards : 0
  Busy level   : 1
  Dynamic      : Yes
  Callerid     : "ТЕХЭКСПЕРТ" <3124>
  MaxCallBR    : 384 kbps
  Expire       : 1622
  Insecure     : port,invite
  Force rport  : Yes
  Symmetric RTP: Yes
  ACL          : Yes
  DirectMedACL : No
  T.38 support : No
  T.38 EC mode : Unknown
  T.38 MaxDtgrm: 4294967295
  DirectMedia  : Yes
  PromiscRedir : No
  User=Phone   : No
  Video Support: No
  Text Support : No
  Ign SDP ver  : No
  Trust RPID   : Yes
  Send RPID    : Yes
  Path support : No
  Path         : N/A
  TrustIDOutbnd: Legacy
  Subscriptions: Yes
  Overlap dial : No
  DTMFmode     : rfc2833
  Timer T1     : 500
  Timer B      : 32000
  ToHost       :
  Addr->IP     : 192.168.60.103:5060
  Defaddr->IP  : (null)
  Prim.Transp. : UDP
  Allowed.Trsp : UDP
  Def. Username: 3124
  SIP Options  : path replaces replace timer
  Codecs       : (ulaw|alaw|g722|g729)
  Auto-Framing : No
  Status       : OK (13 ms)
  Useragent    : Grandstream GXP1628 0.8.16.42
  Reg. Contact : sip:3124 at 192.168.60.103:5060
  Qualify Freq : 60000 ms
  Keepalive    : 0 ms
  Variables    :
                 LDC = 1
  Sess-Timers  : Refuse
  Sess-Refresh : uas
  Sess-Expires : 1800 secs
  Min-Sess     : 90 secs
  RTP Engine   : asterisk
  Parkinglot   :
  Use Reason   : Yes
  Encryption   : No
{code}

> channel: Crash when appending cap during dialing to a channel, when built with debugging compiler options
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-26373
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-26373
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/Channels
>    Affects Versions: 13.11.2
>         Environment: Virtual Machine on ESXi6 (VM Version 11, 4vCPU, 16Gb RAM), OS: CentOS release 6.8 (Final) x86_84
>            Reporter: Denis S.Davydov
>            Assignee: Denis S.Davydov
>         Attachments: 20160913_1457.log, bt_20160927.log, full_20160913_1457.txt, full_20160927.log, full_filtered_20160927.log, mmlog_20160913, queue_20160927.log
>
>
> Sep 13 14:57:23 pbx kernel: asterisk[18303] general protection ip:526f83 sp:7fa6e1854340 error:0 in asterisk[400000+370000]
> Segmentation fault in ast_format_cap_append_from_cap.
> {code}
> Program terminated with signal 11, Segmentation fault.
> #0  0x0000000000526f83 in ast_format_cap_append_from_cap (dst=0x7fa731384ab0, src=0x7fa6d5098350, type=AST_MEDIA_TYPE_UNKNOWN) at format_cap.c:308
> 308			struct format_cap_framed *framed = AST_VECTOR_GET(&src->preference_order, idx);
> #0  0x0000000000526f83 in ast_format_cap_append_from_cap (dst=0x7fa731384ab0, src=0x7fa6d5098350, type=AST_MEDIA_TYPE_UNKNOWN) at format_cap.c:308
>         __idx = 0
>         framed = 0x7fa6d512f190
>         idx = 0
>         res = 0
> #1  0x00000000004c2e53 in ast_request (type=0x7fa6e1854580 "SIP", request_cap=0x7fa6d5098350, assignedids=0x0, requestor=0x7fa6d54b3068, addr=0x7fa6e1854584 "3112", cause=0x7fa6e1854680) at channel.c:6068
>         tmp_cap = 0x7fa7313bf700
>         tmp_fmt = 0xbc67d0
>         best_audio_fmt = 0xbc67d0
>         joint_cap = 0x7fa731384ab0
>         chan = 0x17a62c0
>         c = 0x7fa6e1855fc0
>         res = 0
>         foo = 32679
>         __PRETTY_FUNCTION__ = "ast_request"
> {code}
> backtrace.txt and full.txt are in attachment.
> Compiled flags on my Asterisk-PBX is DONT_OPTIMIZE, COMPILE_DOUBLE, LOADABLE_MODULES, BETTER_BACKTRACES, MALLOC_DEBUG, BULD_NATIVE. Mmlog useless, there's nothing.



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



More information about the asterisk-bugs mailing list