Summary:ASTERISK-21176: Call files on OS X, using KQueue, do not get processed (load 100%)
Reporter:Carlton O'Riley (coriley)Labels:
Date Opened:2013-02-27 09:38:49.000-0600Date Closed:2013-03-14 20:33:11
Versions:11.2.1 Frequency of
is duplicated byASTERISK-21395 High CPU use due to invalid time limit passed to kevent() in pbx_spool.c:scanthread
Environment:OS X 10.8.2Attachments:( 0) kqueue_osx.patch
Description:When building Asterisk on 11.2.1 on OS X it properly detects and uses KQueue to watch for changes to the Asterisk spool directory, however placing call files in the spool directory do not get processed.  Asterisk also starts using 100% of the CPU.  Looking over the code the timeout value is being set to MAX_INT seconds when the spool directory is empty, which is an invalid value, causing call to kevent to error immediately and create a tight loop leading to the increased loading.
Comments:By: Carlton O'Riley (coriley) 2013-02-27 09:45:20.621-0600

Patch to fix KQueue/kevent timeout setting issue.

By: Rusty Newton (rnewton) 2013-03-06 16:11:33.124-0600

Issues affecting only platforms other than Linux are generally considered extended support, and would therefore be supported by community developers. This issue does appear rather annoying and since you have provided a patch I went ahead and put it on the core teams radar as well just in case they get the time to get around to review it.