amd64/92412: rcp.rstatd reports bogus packets/per/second info
hotlips Internet admin
hostmaster at GTS.NET
Mon Jan 30 11:30:10 PST 2006
The following reply was made to PR amd64/92412; it has been noted by GNATS.
From: hotlips Internet admin <hostmaster at GTS.NET>
To: sean at mcneil.com (Sean McNeil)
Cc: bug-followup at FreeBSD.org
Subject: Re: amd64/92412: rcp.rstatd reports bogus packets/per/second info
Date: Mon, 30 Jan 2006 14:22:52 -0500 (EST)
Thus saith Sean McNeil:
|
|
| On Jan 30, 2006, at 11:02 AM, hotlips Internet admin wrote:
|
| > Thus saith Sean McNeil:
| > | On Sun, 2006-01-29 at 07:30 +0000, hotlips Internet admin wrote:
| > | > The following reply was made to PR amd64/92412; it has been
| > noted by GNATS.
| > | >
| > | > From: hotlips Internet admin <hostmaster at GTS.NET>
| > | > To: kris at obsecurity.org (Kris Kennaway)
| > | > Cc: bug-followup at FreeBSD.org
| > | > Subject: Re: amd64/92412: rcp.rstatd reports bogus packets/per/
| > second info
| > | > Date: Sun, 29 Jan 2006 02:25:33 -0500 (EST)
| > | >
| > | > Thus saith Kris Kennaway:
| > | > | On Fri, Jan 27, 2006 at 11:59:15AM -0500, hotlips Internet
| > admin wrote:
| > | > |
| > | > | > | > >Description:
| > | > | > | > packets/second value reported by rpc.rstatd to remote
| > monitor hovers around
| > | > | > | > 8000 or so with odd downward spikes approx every 90
| > seconds (it's not at
| > | > | > | all related to actual interface traffic)
| > | > | > | >
| > | > | > | > >How-To-Repeat:
| > | > | > | > keep displaying rpc.rstatd data from 6.0 system
| > | > | > |
| > | > | > | How are you using rpc.rstatd and rup? I don't see a way
| > to make rup
| > | > | > | display "packets/second", it only gives uptime and load
| > average:
| > | > | > |
| > | > | > | # rup
| > | > | > | fbsd-amd64.isc. 10:02am up 4 days, 14:00, load
| > average: 2.00 2.00 2.00
| > | > | >
| > | > | > Solaris perfmeter, actually.
| > | > |
| > | > | Do you know how I can query this on FreeBSD?
| > | >
| > | >
| > | > oop, wrong (older) diff - use this one below...
| > |
| > | The diff would be more readable if you only include useful
| > changes and
| > | eliminate difference caused solely from white space. For
| > instance, with
| > | diff -ub.
| >
| >
| > rup is also broken, sigh - patches below to account for
| > 8-btye timevals
| >
| >
| > --
| > Bruce Becker +1 416 410 0879
| > GTS Network Administration Toronto, Ont.
| > Email: hostmaster at gts.net
| >
| > --------- 8< --------- 8< --------- 8< --------- 8< --------- 8<
| > ---------
| >
| > --- rup.c.orig Sat May 21 05:55:07 2005
| > +++ rup.c Mon Jan 30 13:55:34 2006
| > @@ -93,6 +93,7 @@
| > static bool_t
| > rstat_reply(caddr_t replyp, struct sockaddr_in *raddrp)
| > {
| > + long longtime;
| > struct tm *tmp_time;
| > struct tm host_time;
| > struct tm host_uptime;
| > @@ -118,12 +119,14 @@
| >
| > printf("%-*s\t", HOST_WIDTH, host);
| >
| > - tmp_time = localtime((time_t *)&host_stat->curtime.tv_sec);
| > + longtime = host_stat->curtime.tv_sec;
| > + tmp_time = localtime((time_t *)&longtime);
| > host_time = *tmp_time;
| >
|
|
| Just curious, but why not declare a variable as time_t instead of
| long? Seems like that would be more correct.
|
|
| > host_stat->curtime.tv_sec -= host_stat->boottime.tv_sec;
| >
| > - tmp_time = gmtime((time_t *)&host_stat->curtime.tv_sec);
| > + longtime = host_stat->curtime.tv_sec;
| > + tmp_time = gmtime((time_t *)&longtime);
| > host_uptime = *tmp_time;
| >
| > #define updays (host_stat->curtime.tv_sec / 86400)
it didn't seem to matter because of the "u_int tv_sec"
declaration in rstat_timeval in /usr/include/rpcsvc/rstat.h,
and the surrounding "(time_t *)&" - it should be as you suggest
however
in fact the problem mentioned seems to have been noticed
recently and is fixed somewhat more cleanly in current ...
Cheers,
Bruce Becker +1 416 410 0879
GTS Network Administration Toronto, Ont.
Email: hostmaster at gts.net
More information about the freebsd-amd64
mailing list