[Home]

Summary:ASTERISK-13429: Paging application crashes asterisk
Reporter:Michael Gaudette (bluefox)Labels:
Date Opened:2009-01-22 07:01:52.000-0600Date Closed:2009-01-25 07:40:20.000-0600
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:Applications/app_page
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) 20090124__bug14308.diff.txt
( 1) cli_output.log
( 2) gdb.txt
( 3) page_segfault_asterisk_revision_170693_backtrace.txt
( 4) page_segfault_asterisk_revision_170693_cli.txt
( 5) pagingsegfault1.4.23.bt.txt
( 6) valgrind.txt.7322
Description:Not much more to be said! See additional info below for output

****** ADDITIONAL INFORMATION ******

/usr/sbin/safe_asterisk: line 117:  6327 Segmentation fault      (core dumped) nice -n $PRIORITY ${ASTSBINDIR}/asterisk -f ${CLIARGS} ${ASTARGS} >&/dev/${TTY} < /dev/${TTY}
Asterisk ended with exit status 139
Asterisk exited on signal 11.
Automatically restarting Asterisk.
[root@cl-t067-460cl asterisk]# mpg123: no process killed

[root@cl-t067-460cl asterisk]# /usr/sbin/safe_asterisk: line 117:  6470 Segmentation fault      (core dumped) nice -n $PRIORITY ${ASTSBINDIR}/asterisk -f ${CLIARGS} ${ASTARGS} >&/dev/${TTY} < /dev/${TTY}
Asterisk ended with exit status 139
Asterisk exited on signal 11.
Automatically restarting Asterisk.
mpg123: no process killed
Comments:By: Michael Gaudette (bluefox) 2009-01-22 07:20:08.000-0600

In case this happens to be the first idea, dahdi_test seems to work so it's not the dahdi_dummy that is missing

By: Michael Gaudette (bluefox) 2009-01-22 07:32:25.000-0600

I can't test this anymore, because I had to revert, but I seem to notice that the problem occured while hints were being changed.  So it may have something to do with hints coupled with the page application.

By: Joshua C. Colp (jcolp) 2009-01-22 08:27:03.000-0600

We are going to need much more information to diagnose this issue. This includes a backtrace (read doc/backtrace.txt for information on getting one) plus the actual Page arguments and channels involved. Complete console output would also be useful.

By: Michael Gaudette (bluefox) 2009-01-23 02:49:41.000-0600

Uploaded the backtrace and the CLI output.  I created a test extension that crashed Asterisk (only on 1.4.23, not 1.4.22.1) that boiled it down to it's essence.

I also tried removing all involved hints, thinking the amount of hints changing at the same time crashed Asterisk, but that didn't solve the issue. Note that I did not remove the various phone's (all Polycom) subscriptions though.

By: David Brillert (aragon) 2009-01-23 14:54:10.000-0600

Ouch, paging crashes for me also on Asterisk 1.4.23 official release

(gdb) bt
#0  0x080751ad in get_unaligned_uint32 ()
#1  0x08074a2d in __ast_free_region ()
#2  0x080754c7 in __ast_free ()
#3  0x080a75a1 in ast_dial_destroy ()
#4  0x0185d288 in page_exec (chan=0x9bf4298, data=0xb73c0f38) at app_page.c:191
ASTERISK-1  0x080d5109 in pbx_exec ()
ASTERISK-2  0x080d8eaa in pbx_extension_helper ()
ASTERISK-3  0x080da237 in ast_spawn_extension ()
ASTERISK-4  0x080da695 in __ast_pbx_run ()
ASTERISK-5  0x080db500 in pbx_thread ()
ASTERISK-6 0x0811fc67 in dummy_start ()
ASTERISK-7 0x008fd45b in start_thread () from /lib/libpthread.so.0
ASTERISK-8 0x00854e5e in clone () from /lib/libc.so.6
(gdb) bt full
#0  0x080751ad in get_unaligned_uint32 ()
No symbol table info available.
#1  0x08074a2d in __ast_free_region ()
No symbol table info available.
#2  0x080754c7 in __ast_free ()
No symbol table info available.
#3  0x080a75a1 in ast_dial_destroy ()
No symbol table info available.
#4  0x0185d288 in page_exec (chan=0x9bf4298, data=0xb73c0f38) at app_page.c:191
       dial = (struct ast_dial *) 0x9bfada0
       u = (struct ast_module_user *) 0x9bfb1d0
       options = 0x0
       tech = 0x0
       resource = 0xb73bec96 "2001@default-local-paging"
       tmp = 0x0
       tmp2 = 0xb73beaf1 "ocal"
       meetmeopts = "1111733070d|Atqxd\000|mqxdw(5)\000|ÊÁ\t\020ñ\027\b\214\030¿\t\000\000\000\000°í;·\000\000\000\000\001\000\000\000\006\000\000\000(E¿\t8î;·B\002\r\btò\025\bò\t\000\000n\f\026\b\235ø\025\b"
       originator = "SIP/6010\00009bf6a90\000;·mö\021\b\214\004\220\000(\b\000\000(E¿\t\001\000\000\0008í;·\220;<·(E¿\tØD¿\tHí;·\200\b\220\000\230í;·'\207\f\bhò\027\bÇô\025\b"
       flags = {flags = 0}
       confid = 1111733070
       app = (struct ast_app *) 0xb7400a98
       res = 0
       pos = 14
       i = 0
       dial_list = (struct ast_dial **) 0x9c0a560
       num_dials = 1
       __PRETTY_FUNCTION__ = "page_exec"
ASTERISK-1  0x080d5109 in pbx_exec ()
No symbol table info available.
ASTERISK-2  0x080d8eaa in pbx_extension_helper ()
No symbol table info available.
ASTERISK-3  0x080da237 in ast_spawn_extension ()
No symbol table info available.
ASTERISK-4  0x080da695 in __ast_pbx_run ()
No symbol table info available.
ASTERISK-5  0x080db500 in pbx_thread ()
No symbol table info available.
ASTERISK-6 0x0811fc67 in dummy_start ()
No symbol table info available.
ASTERISK-7 0x008fd45b in start_thread () from /lib/libpthread.so.0
No symbol table info available.
ASTERISK-8 0x00854e5e in clone () from /lib/libc.so.6
No symbol table info available.

By: David Brillert (aragon) 2009-01-23 14:58:44.000-0600

-- Executing [*830@default-super:1] Answer("SIP/6002-099a3038", "") in new stack
   -- Executing [*830@default-super:2] Set("SIP/6002-099a3038", "GROUP(OUTGOING)=6002") in new stack
   -- Executing [*830@default-super:3] Set("SIP/6002-099a3038", "__PAGING_RINGTIME=5") in new stack
   -- Executing [*830@default-super:4] NoCDR("SIP/6002-099a3038", "") in new stack
   -- Executing [*830@default-super:5] Set("SIP/6002-099a3038", "TIMEOUT(absolute)=45") in new stack
   -- Channel will hangup at 2009-01-23 20:59:05 UTC.
   -- Executing [*830@default-super:6] Page("SIP/6002-099a3038", "Local/6000@default-local-paging&Local/6001@default-local-paging&Local/6002@default-local-paging&Local/6003@default-local-paging&Local/6004@default-local-paging&Local/6005@default-local-paging&Local/6006@default-local-paging&Local/6007@default-local-paging&Local/6008@default-local-paging&Local/6009@default-local-paging&Local/6010@default-local-paging&Local/6011@default-local-paging&Local/6012@default-local-paging&Local/2001@default-local-paging") in new stack
   -- Called 6000@default-local-paging
   -- Executing [6000@default-local-paging:1] SIPAddHeader("Local/6000@default-local-paging-a732,2", ""Call-Info: sip:;answer-after=0"") in new stack
   -- Called 6001@default-local-paging
   -- Called 6002@default-local-paging
   -- Called 6003@default-local-paging
   -- Executing [6001@default-local-paging:1] SIPAddHeader("Local/6001@default-local-paging-1338,2", "Call-Info:;answer-after=0") in new stack
   -- Executing [6001@default-local-paging:2] Set("Local/6001@default-local-paging-1338,2", "GROUPCOUNT=0") in new stack
   -- Called 6004@default-local-paging
   -- Executing [6000@default-local-paging:2] Set("Local/6000@default-local-paging-a732,2", "GROUPCOUNT=0") in new stack
   -- Executing [6001@default-local-paging:3] GotoIf("Local/6001@default-local-paging-1338,2", "0?6") in new stack

By: David Brillert (aragon) 2009-01-23 15:28:22.000-0600

New test and segfault with this revision
Uploading CLI and BT

svn info
Path: .
URL: http://svn.digium.com/svn/asterisk/branches/1.4
Repository UUID: f38db490-d61c-443f-a65b-d21fe96a405b
Revision: 170693
Node Kind: directory
Schedule: normal
Last Changed Author: mmichelson
Last Changed Rev: 170671
Last Changed Date: 2009-01-23 15:21:51 -0500 (Fri, 23 Jan 2009)
Properties Last Updated: 2009-01-23 15:29:17 -0500 (Fri, 23 Jan 2009)

By: David Brillert (aragon) 2009-01-24 17:45:16.000-0600

I was able to reproduce the crash on one of my production servers with revision 170693 and I ran the test under Valgrind.
Asterisk doesn't crash under Valgrind but uploaded log anyway...

It is very easy to reproduce the crash when not using Valgrind.
Paging crashes Asterisk almost 100% of the time.

By: Sean Bright (seanbright) 2009-01-24 18:19:36.000-0600

Could one of you test the attached patch and report back the results?

By: Philip Rosenberg-Watt (kc0bvu) 2009-01-24 23:33:56.000-0600

Had the same problem with 1.4.23 and the patch solved the crash for me.

By: Digium Subversion (svnbot) 2009-01-25 07:33:06.000-0600

Repository: asterisk
Revision: 170979

U   branches/1.4/apps/app_page.c

------------------------------------------------------------------------
r170979 | seanbright | 2009-01-25 07:33:05 -0600 (Sun, 25 Jan 2009) | 9 lines

Resolve a logic error that was causing Page() to crash when more than one
channel was specified.

(closes issue ASTERISK-13429)
Reported by: bluefox
Patches:
     20090124__bug14308.diff.txt uploaded by seanbright (license 71)
Tested by: kc0bvu

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=170979

By: Digium Subversion (svnbot) 2009-01-25 07:35:16.000-0600

Repository: asterisk
Revision: 170980

_U  trunk/
U   trunk/apps/app_page.c

------------------------------------------------------------------------
r170980 | seanbright | 2009-01-25 07:35:15 -0600 (Sun, 25 Jan 2009) | 16 lines

Merged revisions 170979 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
 r170979 | seanbright | 2009-01-25 08:33:20 -0500 (Sun, 25 Jan 2009) | 9 lines
 
 Resolve a logic error that was causing Page() to crash when more than one
 channel was specified.
 
 (closes issue ASTERISK-13429)
 Reported by: bluefox
 Patches:
       20090124__bug14308.diff.txt uploaded by seanbright (license 71)
 Tested by: kc0bvu
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=170980

By: Digium Subversion (svnbot) 2009-01-25 07:38:06.000-0600

Repository: asterisk
Revision: 170981

_U  branches/1.6.0/
U   branches/1.6.0/apps/app_page.c

------------------------------------------------------------------------
r170981 | seanbright | 2009-01-25 07:38:05 -0600 (Sun, 25 Jan 2009) | 23 lines

Merged revisions 170980 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r170980 | seanbright | 2009-01-25 08:35:48 -0500 (Sun, 25 Jan 2009) | 16 lines
 
 Merged revisions 170979 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r170979 | seanbright | 2009-01-25 08:33:20 -0500 (Sun, 25 Jan 2009) | 9 lines
   
   Resolve a logic error that was causing Page() to crash when more than one
   channel was specified.
   
   (closes issue ASTERISK-13429)
   Reported by: bluefox
   Patches:
         20090124__bug14308.diff.txt uploaded by seanbright (license 71)
   Tested by: kc0bvu
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=170981

By: Digium Subversion (svnbot) 2009-01-25 07:40:19.000-0600

Repository: asterisk
Revision: 170982

_U  branches/1.6.1/
U   branches/1.6.1/apps/app_page.c

------------------------------------------------------------------------
r170982 | seanbright | 2009-01-25 07:40:19 -0600 (Sun, 25 Jan 2009) | 23 lines

Merged revisions 170980 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r170980 | seanbright | 2009-01-25 08:35:48 -0500 (Sun, 25 Jan 2009) | 16 lines
 
 Merged revisions 170979 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r170979 | seanbright | 2009-01-25 08:33:20 -0500 (Sun, 25 Jan 2009) | 9 lines
   
   Resolve a logic error that was causing Page() to crash when more than one
   channel was specified.
   
   (closes issue ASTERISK-13429)
   Reported by: bluefox
   Patches:
         20090124__bug14308.diff.txt uploaded by seanbright (license 71)
   Tested by: kc0bvu
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=170982