Summary:ASTERISK-17174: [patch] On Darwin, pbx_spool stops looking for work after 20-30 minutes of idle time
Reporter:John Covert (jcovert)Labels:patch
Date Opened:2010-12-28 11:57:25.000-0600Date Closed:
Versions:Frequency of
Environment:Attachments:( 0) 20101228__issue18544.diff.txt
( 1) show-2010-12-28-1254.txt
Description:after a while, call files sit unprocessed in the outgoing spool directory.

upon restart, they are processed, and new files are processed for a while.

this problem seems to be suppressed by having a call file execute once a minute

core show threads attached, but it doesn't look any different before or after the failure.
Comments:By: Tilghman Lesher (tilghman) 2010-12-28 12:59:36.000-0600

See if this patch solves the problem.  From your description, I would think that the kqueue() API is having trouble with a spectacularly long timeout, so this patch shortens the timeout to 60 seconds (whereupon it should note the timeout, then try again).

By: John Covert (jcovert) 2010-12-28 13:14:51.000-0600

Posted the workaround below before seeing that you had provided a patch.  I'm trying your patch now, which -- if it works -- would presumably be better.


Another workaround seems to be to undef HAVE_KQUEUE in pbx_spool.c

(which creates the worry that other consumers of kqueue may run into similar issues)

By: John Covert (jcovert) 2010-12-28 16:22:30.000-0600

Unfortunately the patch doesn't solve the problem; it makes it worse -- no processing at all, and possibly increased instability throughout.

I've gone back to the "undef HAVE_KQUEUE" workaround.

By: waltermoeller (waltermoeller) 2011-01-15 11:53:08.000-0600


same problem.

undef have_kqueue workaround , on which file set undef statment ?

By: John Covert (jcovert) 2011-01-15 12:39:04.000-0600

As I said, in pbx_spool.c

I don't consider it a real fix; just a temporary workaround.

Did you also try tilghman's proposed patch (which didn't work for me)?

Since it isn't a fix, just a workaround, I'm not going to upload it, but you can grab it from http://www6.covert.org/asterisk/

Walter, please stick around and help out with Darwin testing.  We need a lot more of it.  IAX especially seems to be a problem now.

By: waltermoeller (waltermoeller) 2011-01-16 04:31:24.000-0600

ok , thank you.

but testet it, but no change , dead after 20-40 mins.

try it again, only in pbx_spool.c

By: waltermoeller (waltermoeller) 2011-01-16 06:45:49.000-0600

ok, testet.

dont work at my installation.

set #undef HAVE_KQUEUE

same soupe !

By: waltermoeller (waltermoeller) 2011-01-17 07:19:48.000-0600

Info for iax,

we use iax for internal phone on three asterisk server. we have no problems.

By: John Covert (jcovert) 2011-03-22 22:37:19

waltermoeller, what version of Darwin, what CPU architecture (ppc/intel), and what cpu speed?

BTW, the IAX problems seem minor for IAX phones, but major for IAX trunks when transcoding is going on.  But that's a separate problem report.