[asterisk-bugs] [Asterisk 0011891]: 100% CPU if zaptel timing fails

noreply at bugs.digium.com noreply at bugs.digium.com
Fri Feb 8 11:51:34 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11891 
====================================================================== 
Reported By:                tzafrir
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   11891
Category:                   Channels/chan_iax2
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.17 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             01-31-2008 12:43 CST
Last Modified:              02-08-2008 11:51 CST
====================================================================== 
Summary:                    100% CPU if zaptel timing fails
Description: 
I seem to have some older zaptel modules loaded (unlikely) or maybe
somewhere in the build process the wrong zaptel.h was used (a bit more
likely). Anyway right now Asterisk is stuck in a 100% CPU loop.
That this is indeed a configuration error on my side. However it had some
very bad results.

tracing the wild thread with strace, I get a loop of:

poll([{fd=11, events=POLLIN}, {fd=10, events=POLLIN|POLLPRI,
revents=POLLPRI|POLLERR}], 2, -1) = 1
gettimeofday({1201804688, 273298}, NULL) = 0
ioctl(10, 0x40044a30, 0xb70ba368)       = -1 ENOTTY (Inappropriate ioctl
for device)
time([1201804688])                      = 1201804688
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2197, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2197, ...}) = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2197, ...}) = 0
gettid()                                = 2355
write(4, "[Jan 31 20:38:08] WARNING[2355] "..., 77) = 77
gettid()                                = 2355
write(1, "[Jan 31 20:38:08] WARNING[2355]:"..., 63) = 63
write(1, "Unable to acknowledge zap timer\n", 32) = 32

Before I disabled -p, this prevented the system from properly booting.

Maybe chan_iax should apply rate limit if it gets some types of "bad"
answers?
====================================================================== 

---------------------------------------------------------------------- 
 putnopvut - 02-08-08 11:51  
---------------------------------------------------------------------- 
I discussed this situation with russell and he said there's no real way to
"fix" this problem. What he suggested was allowing the thread to yield 
I'll be committing a fix very shortly. Thanks for bringing this up,
Tzafrir. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
02-08-08 11:51  putnopvut      Note Added: 0081926                          
======================================================================




More information about the asterisk-bugs mailing list