On Fri, 4 May 2007, Karel Kulhavy wrote:
> I have the OpenBSD 4.0 ping and it wrote this:
>
> 64 bytes from 192.168.2.215: icmp_seq=3029 ttl=64 time=6.057 ms
> 64 bytes from 192.168.2.215: icmp_seq=3035 ttl=64 time=44.108 ms
> 64 bytes from 192.168.2.215: icmp_seq=3036 ttl=64 time=-994831.-515 ms
> ^
> Parse error: minus sign not allowed between decimal dot and the decimal part.
Is "Parse error:..." the output of some program?
>
> CL<
Observe the "ping" source:
733 if (timing)
734 (void)printf(" time=%d.%03d ms",
735 (int)(triptime / 1000),
736 (int)(triptime % 1000));
your indicated triptime is -994,831,515 usec.
Expressed otherwise, that is -994831515 3300135781 c4b41365, as an
unsigned and in hex. Taking the unsigned interpretation, that would
be 3300 seconds or about 55 minutes. (triptime is a quad_t type).
I suggest a fault in your computer, some sort of glitch in the
highspeed clock... unless the ping actually took 55 minutes. You
can peruse the pellucid source to ping at /usr/src/sbin/ping.c
Perhaps, if ping times must always be positive, the printf
might be changed to
734 (void)printf(" time=%u.%03u ms",
735 (unsigned int)(triptime / 1000),
736 (unsigned int)(triptime % 1000));
Your output would then have read:
64 bytes from 192.168.2.215: icmp_seq=3036 ttl=64 time=3300135.781 ms
It would have been more helpful had you exhibited the original ping command.
I am curious about the value for the -w ("maxwait") parameter, which
defaults to ten seconds. If that was the -w you used, then again
I suggest looking for a hardware failure (or perhaps some process that
pre-empted the clock or blocked interrupts in general).
Dave
--
Resistance is futile. You've already been assimilated.