traceroute will not time hops out and print a * if other ICMP traffic is occurring (i.e. destination unreachable, pings, ping replies,...), which is not necessarily under control of the person running traceroute. (I first experienced this on a busy web server which gets lots of 'time exceeded' and 'host unreachable' errors due to HTTP requests) Fix: Make the timeout calculated from the time that the probe was sent, instead of assuming that if select returned it returned the response to our probe. How-To-Repeat: ping somehost & traceroute someotherhostthatwilltimeout the traceroute will hang at the first lost packet / unresponsive router and will never print a * until you kill the ping, at which point it will resume.
State Changed From-To: open->closed Fix applied in traceroute.c v1.3