|Summary:||ASTERISK-20750: res_timing_kqueue makes Asterisk use 100% CPU|
|Reporter:||Oleg Baranov (/dev/null)||Labels:|
|Date Opened:||2012-11-28 07:40:48.000-0600||Date Closed:||2017-04-07 16:43:33|
|Environment:||FreeBSD 9.0 Release (clean install just to report this bug)||Attachments:||( 0) myDebugLog.head1000|
|Description:||Asterisk works but one cpu core gets loaded 100%.
Seems easy to reproduce:
- Download and unpack Asterisk
- ./configure (trivial, with no extra parameters)
- Enable kqueue in menuselect as mentioned in workaround ASTERISK-20749
- make ; make install; make samples
- run asterisk (no config file change required) and monitor cpu load
timing test produces strange results:
bsd-cli*CLI> timing test
Attempting to test a timer with 50 ticks per second.
Using the 'kqueue' timing module for this test.
It has been 1000 milliseconds, and we got 413145 timer ticks
|Comments:||By: Rusty Newton (rnewton) 2012-12-03 20:00:23.190-0600|
Acknowledged. res_timing_kqueue and Asterisk on FreeBSD is considered extended support, which is covered by the community. Response times will reflect that. Thanks for reporting this. If you can supply a patch, that is always helpful.
By: Rusty Newton (rnewton) 2012-12-03 20:03:58.681-0600
https://wiki.asterisk.org/wiki/display/AST/Collecting+Debug+Information You'll want to get a full log of Asterisk including the VERBOSE and DEBUG messages set to level 5. Make sure the full log captures the startup of Asterisk plus all the way through till the CPU utilization issue starts. Attach the log to the issue.
By: Rusty Newton (rnewton) 2012-12-03 20:34:13.601-0600
[Valgrind|https://wiki.asterisk.org/wiki/display/AST/Valgrind] with the callgrind option can dump out a profiling report, which could be useful to anyone looking into this issue. You may also want to consider posting any further information including dialplan (extensions.conf) in use, asterisk modules in use, any configuration changes made to Asterisk. Be sure to attach the config files and do not paste them in-line.
By: Oleg Baranov (/dev/null) 2012-12-04 04:38:52.666-0600
Debug output of first 1000 lines with 5 verbosity level from Asterisk start.
res_timing_kqueue ends up with
"res_timing_kqueue.c: Acking more events than have expired?!!"
By: Oleg Baranov (/dev/null) 2012-12-04 05:17:16.281-0600
Update: taking out chan_iax2 by putting
noload => chan_iax2.so
into modules.conf mitigate the issue. Default iax.conf is used. I tried but could not find any parameters in iax.conf that have any effect on the problem.
By: Sean Bright (seanbright) 2017-04-07 16:43:33.666-0500
I am not able to reproduce this problem with Asterisk 13.15.0 on FreeBSD 11.
If you are able to reproduce with Asterisk 13.15.0 or higher, please feel free to re-open this issue.