[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#384444: mtr in sarge eats 100% cpu with -n



Package: mtr-tiny
Version: 0.67-1

Hi,

mtr in sarge eats 100% CPU when called with -n (don't resolve IP
addresses to hostnames).  It turns out there is a small bug in
select.c's select_loop() that causes select to always be called with a
timeout of 0.

The fix appears quite trivial, and already is in the version in sid:

diff -w -u mtr-0.67-1/select.c mtr-0.67-1.weasel/select.c
--- mtr-0.67-1/select.c	2004-08-26 09:56:53.000000000 +0200
+++ mtr-0.67-1.weasel/select.c	2006-08-24 11:08:23.290440926 +0200
@@ -116,12 +116,14 @@
 	  selecttime.tv_usec += 1000000;
 	}
 
+	if (dns) {
 	if ((selecttime.tv_sec > (time_t)dnsinterval) ||
 	    ((selecttime.tv_sec == (time_t)dnsinterval) &&
 	     (selecttime.tv_usec > ((time_t)(dnsinterval * 1000000) % 1000000)))) {
 	  selecttime.tv_sec = (time_t)dnsinterval;
 	  selecttime.tv_usec = (time_t)(dnsinterval * 1000000) % 1000000;
 	}
+	}
 
 	rv = select(maxfd, (void *)&readfd, NULL, NULL, &selecttime);
       }


Is this something that should and could be fixed for the next stable
point release?

Cheers,
Peter
-- 
                           |  .''`.  ** Debian GNU/Linux **
      Peter Palfrader      | : :' :      The  universal
 http://www.palfrader.org/ | `. `'      Operating System
                           |   `-    http://www.debian.org/



Reply to: