Summary: | ASTERISK-24865: Asterisk segfaults when paging speakers and phone - hanging up all lines | ||
Reporter: | scott fertig (scristopher) | Labels: | |
Date Opened: | 2015-03-11 12:08:45 | Date Closed: | 2015-04-09 15:48:37 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | . I did not set the category correctly. |
Versions: | 11.10.0 | Frequency of Occurrence | Frequent |
Related Issues: | |||
Environment: | Tested on the following: Freepbx Distro Centos 6.6 with asterisk and freepbx pbx in a flash | Attachments: | ( 0) backtrace2.txt ( 1) backtrace3.txt |
Description: | When paging multiple phones and speakers asterisk segfaults resulting in the phones losing all calls, page appears to stay open on the phone but has cut off during the middle of the page. For example multiple people are on the phone then someone pages all phones and speakers, the phones that are currently active are skipped for the page - the person begins to speak and asterisk segfaults during this period. All calls are dropped the page is dropped and all phones are displaying their calls as still active. | ||
Comments: | By: scott fertig (scristopher) 2015-03-11 12:09:49.146-0500 Text output of gdb -se "asterisk" -ex "bt full" -ex "thread apply all bt" --batch -c /tmp/core.pbx.local-2015-03-11T12:43:40-0400 > /tmp/backtrace.txt By: Matt Jordan (mjordan) 2015-03-11 12:35:03.620-0500 Your backtrace is showing a crash in {{manager.c}}, which doesn't make much sense based on the description of the problem. That would imply that there is either memory corruption, or something else very strange going on. Please provide explicit steps to reproduce the issue, including the dialplan that reproduces it, as well as the channel driver configuration files that reproduce the error. By: scott fertig (scristopher) 2015-03-11 12:37:07.442-0500 Added correct backtrace my apologies By: scott fertig (scristopher) 2015-03-11 12:38:07.162-0500 gdb -se "asterisk" -c core | tee /tmp/backtrace.txt By: Matt Jordan (mjordan) 2015-03-11 12:49:29.192-0500 Well, your current one just shows a bunch of optimized stack traces, which unfortunately isn't useful. Did you compile Asterisk with DONT_OPTIMIZE and BETTER_BACKTRACES? By: scott fertig (scristopher) 2015-03-11 12:55:03.251-0500 I have a paging group setup which rings all extensions on the system. When using this paging group asterisk randomly segfaults I'm not exactly sure how to reproduce it except by paging this group over and over which would be group 3003 My dialplan for this group looks like so: {noformat} [app-paging] include => app-paging-custom exten => ssetup,1,Set(_SIPURI=) exten => ssetup,n,Set(_ALERTINFO=Alert-Info: Ring Answer) exten => ssetup,n,Set(_CALLINFO=Call-Info: <uri>\;answer-after=0) exten => ssetup,n,Set(_SIPURI=intercom=true) exten => ssetup,n,Set(_DOPTIONS=A(beep)) exten => ssetup,n,Set(_DTIME=5) exten => ssetup,n,Set(_ANSWERMACRO=) exten => ssetup,n,Set(PAGE_CONF=${EPOCH}${RAND(100,999)}) exten => ssetup,n,Return() exten => _PAGE.,1(SKIPCHECK),Macro(autoanswer,${EXTEN:4}) exten => _PAGE.,n,Dial(${DIAL},${DTIME},${DOPTIONS}) exten => _PAGE.,n(skipself),Hangup exten => _SPAGE.,1(chanspy),ChanSpy(${SP_DEVICE}-,qW) exten => _SPAGE.,n,Hangup ;--== end of [app-paging] ==--; [ext-paging] include => ext-paging-custom exten => 3001,1,Goto(app-pagegroups,3001,1) exten => 3001,hint,Custom:PAGE3001 exten => 3006,1,Goto(app-pagegroups,3006,1) exten => 3006,hint,Custom:PAGE3006 exten => 3003,1,Goto(app-pagegroups,3003,1) exten => 3003,hint,Custom:PAGE3003 exten => 3004,1,Goto(app-pagegroups,3004,1) exten => 3004,hint,Custom:PAGE3004 exten => 3005,1,Goto(app-pagegroups,3005,1) exten => 3005,hint,Custom:PAGE3005 exten => 3008,1,Goto(app-pagegroups,3008,1) exten => 3008,hint,Custom:PAGE3008 exten => 3007,1,Goto(app-pagegroups,3007,1) exten => 3007,hint,Custom:PAGE3007 ;--== end of [ext-paging] ==--; [app-pagegroups] include => app-pagegroups-custom exten => 3001,1,Macro(user-callerid,) exten => 3001,n,Set(_PAGEGROUP=3001) exten => 3001,n(busy-check),GotoIf($[${TRYLOCK(apppagegroups3001)}]?:busy) exten => 3001,n(devstate),Set(DEVICE_STATE(Custom:PAGE3001)=INUSE) exten => 3001,n,Answer exten => 3001,n,Gosub(app-paging,ssetup,1()) exten => 3001,n,Set(PAGEMODE=PAGE) exten => 3001,n,Set(PAGE_MEMBERS=100-1003-101-102-103-104-107-108-109-110-111-113-114-117-118-119-120-121-123-125-126-129-130-140-142-143-145-146-147-160) exten => 3001,n,Set(PAGE_CONF_OPTS=) exten => 3001,n(agi),AGI(page.agi) exten => 3001,n,Set(CONFBRIDGE(user,template)=page_user_duplex) exten => 3001,n,Set(CONFBRIDGE(user,admin)=yes) exten => 3001,n,Set(CONFBRIDGE(user,marked)=yes) exten => 3001,n(page),ConfBridge(${PAGE_CONF},,,admin_menu) exten => 3001,n,Hangup exten => 3001,n(busy),Set(PAGE${PAGEGROUP}BUSY=TRUE) exten => 3001,n(play-busy),Busy(3) exten => 3001,n(busy-hang),Goto(app-pagegroups,h,1) exten => 3006,1,Macro(user-callerid,) exten => 3006,n,Set(_PAGEGROUP=3006) exten => 3006,n(busy-check),GotoIf($[${TRYLOCK(apppagegroups3006)}]?:busy) exten => 3006,n(devstate),Set(DEVICE_STATE(Custom:PAGE3006)=INUSE) exten => 3006,n,Answer exten => 3006,n,Gosub(app-paging,ssetup,1()) exten => 3006,n,Set(PAGEMODE=PAGE) exten => 3006,n,Set(PAGE_MEMBERS=104-130-142) exten => 3006,n,Set(PAGE_CONF_OPTS=) exten => 3006,n(agi),AGI(page.agi) exten => 3006,n,Set(CONFBRIDGE(user,template)=page_user_duplex) exten => 3006,n,Set(CONFBRIDGE(user,admin)=yes) exten => 3006,n,Set(CONFBRIDGE(user,marked)=yes) exten => 3006,n(page),ConfBridge(${PAGE_CONF},,,admin_menu) exten => 3006,n,Hangup exten => 3006,n(busy),Set(PAGE${PAGEGROUP}BUSY=TRUE) exten => 3006,n(play-busy),Busy(3) exten => 3006,n(busy-hang),Goto(app-pagegroups,h,1) exten => 3003,1,Macro(user-callerid,) exten => 3003,n,Set(_PAGEGROUP=3003) exten => 3003,n(busy-check),GotoIf($[${TRYLOCK(apppagegroups3003)}]?:busy) exten => 3003,n(devstate),Set(DEVICE_STATE(Custom:PAGE3003)=INUSE) exten => 3003,n,Answer exten => 3003,n,Gosub(app-paging,ssetup,1()) exten => 3003,n,Set(PAGEMODE=PAGE) exten => 3003,n,Set(PAGE_MEMBERS=100-1003-101-102-103-104-107-108-109-110-111-113-114-117-118-119-120-121-123-125-126-128-129-130-140-142-143-145-146-147-160-200) exten => 3003,n,Set(PAGE_CONF_OPTS=) exten => 3003,n(agi),AGI(page.agi) exten => 3003,n,Set(CONFBRIDGE(user,template)=page_user_duplex) exten => 3003,n,Set(CONFBRIDGE(user,admin)=yes) exten => 3003,n,Set(CONFBRIDGE(user,marked)=yes) exten => 3003,n(page),ConfBridge(${PAGE_CONF},,,admin_menu) exten => 3003,n,Hangup exten => 3003,n(busy),Set(PAGE${PAGEGROUP}BUSY=TRUE) exten => 3003,n(play-busy),Busy(3) exten => 3003,n(busy-hang),Goto(app-pagegroups,h,1) exten => 3004,1,Macro(user-callerid,) exten => 3004,n,Set(_PAGEGROUP=3004) exten => 3004,n(busy-check),GotoIf($[${TRYLOCK(apppagegroups3004)}]?:busy) exten => 3004,n(devstate),Set(DEVICE_STATE(Custom:PAGE3004)=INUSE) exten => 3004,n,Answer exten => 3004,n,Gosub(app-paging,ssetup,1()) exten => 3004,n,Set(PAGEMODE=PAGE) exten => 3004,n,Set(PAGE_MEMBERS=100-101-102-108-119-125) exten => 3004,n,Set(PAGE_CONF_OPTS=) exten => 3004,n(agi),AGI(page.agi) exten => 3004,n,Set(CONFBRIDGE(user,template)=page_user_duplex) exten => 3004,n,Set(CONFBRIDGE(user,admin)=yes) exten => 3004,n,Set(CONFBRIDGE(user,marked)=yes) exten => 3004,n(page),ConfBridge(${PAGE_CONF},,,admin_menu) exten => 3004,n,Hangup exten => 3004,n(busy),Set(PAGE${PAGEGROUP}BUSY=TRUE) exten => 3004,n(play-busy),Busy(3) exten => 3004,n(busy-hang),Goto(app-pagegroups,h,1) exten => 3005,1,Macro(user-callerid,) exten => 3005,n,Set(_PAGEGROUP=3005) exten => 3005,n(busy-check),GotoIf($[${TRYLOCK(apppagegroups3005)}]?:busy) exten => 3005,n(devstate),Set(DEVICE_STATE(Custom:PAGE3005)=INUSE) exten => 3005,n,Answer exten => 3005,n,Gosub(app-paging,ssetup,1()) exten => 3005,n,Set(PAGEMODE=PAGE) exten => 3005,n,Set(PAGE_MEMBERS=103-110-114-121) exten => 3005,n,Set(PAGE_CONF_OPTS=) exten => 3005,n(agi),AGI(page.agi) exten => 3005,n,Set(CONFBRIDGE(user,template)=page_user_duplex) exten => 3005,n,Set(CONFBRIDGE(user,admin)=yes) exten => 3005,n,Set(CONFBRIDGE(user,marked)=yes) exten => 3005,n(page),ConfBridge(${PAGE_CONF},,,admin_menu) exten => 3005,n,Hangup exten => 3005,n(busy),Set(PAGE${PAGEGROUP}BUSY=TRUE) exten => 3005,n(play-busy),Busy(3) exten => 3005,n(busy-hang),Goto(app-pagegroups,h,1) exten => 3008,1,Macro(user-callerid,) exten => 3008,n,Set(_PAGEGROUP=3008) exten => 3008,n(busy-check),GotoIf($[${TRYLOCK(apppagegroups3008)}]?:busy) exten => 3008,n(devstate),Set(DEVICE_STATE(Custom:PAGE3008)=INUSE) exten => 3008,n,Answer exten => 3008,n,Gosub(app-paging,ssetup,1()) exten => 3008,n,Set(PAGEMODE=PAGE) exten => 3008,n,Set(PAGE_MEMBERS=107-117) exten => 3008,n,Set(PAGE_CONF_OPTS=) exten => 3008,n(agi),AGI(page.agi) exten => 3008,n,Set(CONFBRIDGE(user,template)=page_user_duplex) exten => 3008,n,Set(CONFBRIDGE(user,admin)=yes) exten => 3008,n,Set(CONFBRIDGE(user,marked)=yes) exten => 3008,n(page),ConfBridge(${PAGE_CONF},,,admin_menu) exten => 3008,n,Hangup exten => 3008,n(busy),Set(PAGE${PAGEGROUP}BUSY=TRUE) exten => 3008,n(play-busy),Busy(3) exten => 3008,n(busy-hang),Goto(app-pagegroups,h,1) exten => 3007,1,Macro(user-callerid,) exten => 3007,n,Set(_PAGEGROUP=3007) exten => 3007,n(busy-check),GotoIf($[${TRYLOCK(apppagegroups3007)}]?:busy) exten => 3007,n(devstate),Set(DEVICE_STATE(Custom:PAGE3007)=INUSE) exten => 3007,n,Answer exten => 3007,n,Gosub(app-paging,ssetup,1()) exten => 3007,n,Set(PAGEMODE=PAGE) exten => 3007,n,Set(PAGE_MEMBERS=200) exten => 3007,n,Set(PAGE_CONF_OPTS=) exten => 3007,n(agi),AGI(page.agi) exten => 3007,n,Set(CONFBRIDGE(user,template)=page_user_duplex) exten => 3007,n,Set(CONFBRIDGE(user,admin)=yes) exten => 3007,n,Set(CONFBRIDGE(user,marked)=yes) exten => 3007,n(page),ConfBridge(${PAGE_CONF},,,admin_menu) exten => 3007,n,Hangup exten => 3007,n(busy),Set(PAGE${PAGEGROUP}BUSY=TRUE) exten => 3007,n(play-busy),Busy(3) exten => 3007,n(busy-hang),Goto(app-pagegroups,h,1) exten => h,1,ExecIf($[${ISNULL(${PAGE${PAGEGROUP}BUSY})}]?Set(DEVICE_STATE(Custom:PAGE${PAGEGROUP})=NOT_INUSE)) ;--== end of [app-pagegroups] ==--; [app-page-stream] include => app-page-stream-custom exten => s,1,Wait(1) exten => s,n,Answer exten => s,n,Set(CONFBRIDGE(user,template)=page_user_duplex) exten => s,n,Set(CONFBRIDGE(user,marked)=yes) exten => s,n,ConfBridge(${PAGE_CONF},,,) exten => s,n,Hangup ;--== end of [app-page-stream] ==--; {noformat} By: scott fertig (scristopher) 2015-03-11 12:55:51.413-0500 I will recompile with DONT_OPTIMIZE and BETTER_BACKTRACES and report back. Thanks! By: Richard Mudgett (rmudgett) 2015-03-11 13:27:52.757-0500 Please don't post extensive debug or logs inside the Description or Comment fields. Thanks! [1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines By: Rusty Newton (rnewton) 2015-03-25 14:13:13.229-0500 [~scristopher] are you still experiencing the issue and can you provide the required backtrace? If not, we'll go ahead and close out the issue. Then we can re-open if you can get the appropriate data in the future. By: Rusty Newton (rnewton) 2015-04-09 15:49:18.844-0500 Suspended due to lack of activity. Please request a bug marshal in #asterisk-bugs on the IRC network irc.freenode.net to reopen the issue should you have the additional information requested. Further information on issue tracker usage can be found in the Asterisk Issue Guidlines [1]. [1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines |