Summary: | ASTERISK-20394: Asterisk crashes in ast_generic_bridge()/ast_frame_free() | ||
Reporter: | Jon Christopherson (m00ster) | Labels: | |
Date Opened: | 2012-09-08 12:02:12 | Date Closed: | 2017-12-12 19:38:28.000-0600 |
Priority: | Critical | Regression? | |
Status: | Closed/Complete | Components: | Core/General |
Versions: | 1.8.15.1 1.8.16.0 | Frequency of Occurrence | |
Related Issues: | |||
Environment: | CentOS 6.2 64-bit on a DELL poweredge R710 with 2x six core Xeon CPU's with 32G RAM | Attachments: | ( 0) asterisk-backtrace.txt ( 1) asterisk-backtrace.txt ( 2) asterisk-backtrace.txt ( 3) asterisk-core-show-locks.txt ( 4) dt.txt ( 5) valgrind.txt |
Description: | when under load asterisk has often crashed with this type of trace. ~150 channels active, and about 90 calls being handled. ast_generic_bridge()/ast_frame_free() | ||
Comments: | By: Jon Christopherson (m00ster) 2012-09-08 12:04:43.745-0500 Backtrace By: Jon Christopherson (m00ster) 2012-09-08 12:07:44.203-0500 Asterisk often is using ~12.6G virtual ram and 100M res like this: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 25124 asterisk 20 0 12.6g 100m 12m S 17.7 0.3 24:41.17 asterisk Version details: FreePBX Version = 2.9.0.12 Running Asterisk Version = 1.8.15.1 Asterisk Source Version = 1.8.15.1 Dahdi Source Version = 2.6.1+2.6.1 Libpri Source Version = 1.4.12 Operating System = CentOS release 6.2 (Final) Kernel Version = 2.6.32-220.23.1.el6.x86_64 - 64 Bit By: Matt Jordan (mjordan) 2012-09-10 07:46:57.333-0500 Your backtrace appears to contain memory corruption and we require valgrind output in order to move this issue forward. Please see https://wiki.asterisk.org/wiki/display/AST/Valgrind for more information about how to produce debugging information. Thanks! By: Jon Christopherson (m00ster) 2012-09-10 10:00:33.233-0500 I have attached a bit of valgrind output, i wasnt able to run it under valgrind for long due to performance issues when running under the debugger, asterisk performed too slowly to keep up with the load, I do still have it compiled with the debug options, so it it shows signs of sip deadlocks or crashes again ill attach those. By: Jon Christopherson (m00ster) 2012-09-10 11:30:56.482-0500 Hello, I uploaded a small valgrind output, I wasn't able to run asterisk under valgrind for lng due to performance issues. It slowed asterisk down to the point it couldn't keep up with call volume. By: Jon Christopherson (m00ster) 2012-09-10 13:51:54.570-0500 Just had asterisk stop responding and hog cpu cycles again, if it doesn't crash it will do this instead and just stop processing calls. By: Richard Mudgett (rmudgett) 2012-09-10 17:43:50.584-0500 Strange, the core show locks file shows three threads waiting for a lock that no one seems to have locked. By: Jon Christopherson (m00ster) 2012-09-15 17:01:29.504-0500 I am still getting crashes on 1.8.16.0, still pointing to memory corruption. I tried running with valgrind, but the performance hit made it unusable. I did attach what little output i got to this report earlier.Here is the latest core dump from today when asterisk got busy. asterisk[1848]: segfault at 7f8f0000001a ip 00000030a1279115 sp 00007f90eac9b720 error 4 in libc-2.12.so[30a1200000+189000] By: Jon Christopherson (m00ster) 2012-09-15 18:52:35.778-0500 Another core a couple hours later, looks diffrent to me. the timing for these cores is odd. asterisk[5018] general protection ip:30a12478de sp:7f488043a070 error:0 in libc-2.12.so[30a1200000+189000] By: Matt Jordan (mjordan) 2012-09-17 08:30:39.831-0500 In each of the backtraces you've uploaded, at least one thread has been in multiple nested macros. The usage of macros is deprecated for a reason - nesting macro calls can cause Asterisk to crash in interesting ways. While the hard limit of 7 is noted on the [wiki|https://wiki.asterisk.org/wiki/display/AST/Application_Macro], it is also possible to hit a limit much sooner than that given the appropriate conditions (such as having a stack intensive application execute). If you replace the nested macros with GoSubs, does this problem still occur? By: Jon Christopherson (m00ster) 2012-09-17 08:50:58.215-0500 Hello, We pretty much use the dialplan that ships with freepbx 2.9, the only changes we made to it involve placing recordings in a diffrent directory structure. I do see macros used alot on the dialplan, but not sure if i see alot of nested macros. By: Corey Farrell (coreyfarrell) 2017-12-12 19:38:28.702-0600 Bridging has been rewritten since 1.8 and the {{ast_generic_bridge}} function no longer exists. ---- Per the Asterisk versions page \[1\], the maintenance (bug fix) support for the Asterisk branch you are using has ended. For continued maintenance support please move to a supported branch of Asterisk. After testing with a supported branch, if you find this problem has not been resolved, please open a new issue against the latest version of that Asterisk branch. Thanks! \[1\] https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions |