From owner-freebsd-bugs Wed Apr 24 9:31: 0 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id BF58437B417 for ; Wed, 24 Apr 2002 09:30:45 -0700 (PDT) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g3OGU1L66657; Wed, 24 Apr 2002 09:30:01 -0700 (PDT) (envelope-from gnats) Received: from spitfire.velocet.net (spitfire.velocet.net [216.138.223.227]) by hub.freebsd.org (Postfix) with ESMTP id A725B37B405 for ; Wed, 24 Apr 2002 09:28:03 -0700 (PDT) Received: from nomad.tor.lets.net (H74.C220.tor.velocet.net [216.138.220.74]) by spitfire.velocet.net (Postfix) with SMTP id 01CE0FB45F4 for ; Wed, 24 Apr 2002 12:27:18 -0400 (EDT) Received: (qmail 6040 invoked by uid 1001); 24 Apr 2002 16:22:32 -0000 Message-Id: <20020424162232.6039.qmail@nomad.lets.net> Date: 24 Apr 2002 16:22:32 -0000 From: Steve Shorter Reply-To: Steve Shorter To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: bin/37424: nfsstat reports negative values Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 37424 >Category: bin >Synopsis: nfsstat reports negative values >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Apr 24 09:30:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Steve Shorter >Release: FreeBSD 4.5-RELEASE i386 >Organization: >Environment: System: FreeBSD nomad.lets.net 4.5-RELEASE FreeBSD 4.5-RELEASE #0: Sat Feb 2 16:21:05 EST 2002 root@nomad.lets.net:/usr/src/sys/compile/NOMAD i386 >Description: nfsstat reports negative values for statistics For example nfsstat -s Server Info: [snip] Server Cache Stats: Inprog Idem Non-idem Misses 1466 25270 10665 -411587171 [snip] nfsstat -c Client Info: [snip] Cache Info: Attr Hits Misses Lkup Hits Misses BioR Hits Misses BioW Hits Misses -1428315246 97569746 1922194966 49909149 443563708 54646266 33354 26817023 BioRLHits Misses BioD Hits Misses DirE Hits Misses 3969094 105837 977158 383847 662768 2735 >How-To-Repeat: run NFS client or server for sufficient time until data in struct nfsstats is not correctly printed by printf with format %9d et. al. >Fix: Change printf formats to 'u' (unsigned) since these values can never be negative. *** nfsstat.c.orig Wed Apr 24 12:00:32 2002 --- nfsstat.c Wed Apr 24 11:58:58 2002 *************** *** 208,212 **** "Getattr", "Setattr", "Lookup", "Readlink", "Read", "Write", "Create", "Remove"); ! printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", nfsstats.rpccnt[NFSPROC_GETATTR], nfsstats.rpccnt[NFSPROC_SETATTR], --- 208,212 ---- "Getattr", "Setattr", "Lookup", "Readlink", "Read", "Write", "Create", "Remove"); ! printf("%9u %9u %9u %9u %9u %9u %9u %9u\n", nfsstats.rpccnt[NFSPROC_GETATTR], nfsstats.rpccnt[NFSPROC_SETATTR], *************** *** 220,224 **** "Rename", "Link", "Symlink", "Mkdir", "Rmdir", "Readdir", "RdirPlus", "Access"); ! printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", nfsstats.rpccnt[NFSPROC_RENAME], nfsstats.rpccnt[NFSPROC_LINK], --- 220,224 ---- "Rename", "Link", "Symlink", "Mkdir", "Rmdir", "Readdir", "RdirPlus", "Access"); ! printf("%9u %9u %9u %9u %9u %9u %9u %9u\n", nfsstats.rpccnt[NFSPROC_RENAME], nfsstats.rpccnt[NFSPROC_LINK], *************** *** 232,236 **** "Mknod", "Fsstat", "Fsinfo", "PathConf", "Commit", "GLease", "Vacate", "Evict"); ! printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", nfsstats.rpccnt[NFSPROC_MKNOD], nfsstats.rpccnt[NFSPROC_FSSTAT], --- 232,236 ---- "Mknod", "Fsstat", "Fsinfo", "PathConf", "Commit", "GLease", "Vacate", "Evict"); ! printf("%9u %9u %9u %9u %9u %9u %9u %9u\n", nfsstats.rpccnt[NFSPROC_MKNOD], nfsstats.rpccnt[NFSPROC_FSSTAT], *************** *** 245,249 **** "TimedOut", "Invalid", "X Replies", "Retries", "Requests"); ! printf("%9d %9d %9d %9d %9d\n", nfsstats.rpctimeouts, nfsstats.rpcinvalid, --- 245,249 ---- "TimedOut", "Invalid", "X Replies", "Retries", "Requests"); ! printf("%9u %9u %9u %9u %9u\n", nfsstats.rpctimeouts, nfsstats.rpcinvalid, *************** *** 256,263 **** printf(" %9.9s %9.9s %9.9s %9.9s\n", "BioR Hits", "Misses", "BioW Hits", "Misses"); ! printf("%9d %9d %9d %9d", nfsstats.attrcache_hits, nfsstats.attrcache_misses, nfsstats.lookupcache_hits, nfsstats.lookupcache_misses); ! printf(" %9d %9d %9d %9d\n", nfsstats.biocache_reads-nfsstats.read_bios, nfsstats.read_bios, --- 256,263 ---- printf(" %9.9s %9.9s %9.9s %9.9s\n", "BioR Hits", "Misses", "BioW Hits", "Misses"); ! printf("%9u %9u %9u %9u", nfsstats.attrcache_hits, nfsstats.attrcache_misses, nfsstats.lookupcache_hits, nfsstats.lookupcache_misses); ! printf(" %9u %9u %9u %9u\n", nfsstats.biocache_reads-nfsstats.read_bios, nfsstats.read_bios, *************** *** 267,276 **** "BioRLHits", "Misses", "BioD Hits", "Misses"); printf(" %9.9s %9.9s\n", "DirE Hits", "Misses"); ! printf("%9d %9d %9d %9d", nfsstats.biocache_readlinks-nfsstats.readlink_bios, nfsstats.readlink_bios, nfsstats.biocache_readdirs-nfsstats.readdir_bios, nfsstats.readdir_bios); ! printf(" %9d %9d\n", nfsstats.direofcache_hits, nfsstats.direofcache_misses); } --- 267,276 ---- "BioRLHits", "Misses", "BioD Hits", "Misses"); printf(" %9.9s %9.9s\n", "DirE Hits", "Misses"); ! printf("%9u %9u %9u %9u", nfsstats.biocache_readlinks-nfsstats.readlink_bios, nfsstats.readlink_bios, nfsstats.biocache_readdirs-nfsstats.readdir_bios, nfsstats.readdir_bios); ! printf(" %9u %9u\n", nfsstats.direofcache_hits, nfsstats.direofcache_misses); } *************** *** 280,284 **** "Getattr", "Setattr", "Lookup", "Readlink", "Read", "Write", "Create", "Remove"); ! printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", nfsstats.srvrpccnt[NFSPROC_GETATTR], nfsstats.srvrpccnt[NFSPROC_SETATTR], --- 280,284 ---- "Getattr", "Setattr", "Lookup", "Readlink", "Read", "Write", "Create", "Remove"); ! printf("%9u %9u %9u %9u %9u %9u %9u %9u\n", nfsstats.srvrpccnt[NFSPROC_GETATTR], nfsstats.srvrpccnt[NFSPROC_SETATTR], *************** *** 292,296 **** "Rename", "Link", "Symlink", "Mkdir", "Rmdir", "Readdir", "RdirPlus", "Access"); ! printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", nfsstats.srvrpccnt[NFSPROC_RENAME], nfsstats.srvrpccnt[NFSPROC_LINK], --- 292,296 ---- "Rename", "Link", "Symlink", "Mkdir", "Rmdir", "Readdir", "RdirPlus", "Access"); ! printf("%9u %9u %9u %9u %9u %9u %9u %9u\n", nfsstats.srvrpccnt[NFSPROC_RENAME], nfsstats.srvrpccnt[NFSPROC_LINK], *************** *** 304,308 **** "Mknod", "Fsstat", "Fsinfo", "PathConf", "Commit", "GLease", "Vacate", "Evict"); ! printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", nfsstats.srvrpccnt[NFSPROC_MKNOD], nfsstats.srvrpccnt[NFSPROC_FSSTAT], --- 304,308 ---- "Mknod", "Fsstat", "Fsinfo", "PathConf", "Commit", "GLease", "Vacate", "Evict"); ! printf("%9u %9u %9u %9u %9u %9u %9u %9u\n", nfsstats.srvrpccnt[NFSPROC_MKNOD], nfsstats.srvrpccnt[NFSPROC_FSSTAT], *************** *** 314,324 **** nfsstats.srvrpccnt[NQNFSPROC_EVICTED]); printf("Server Ret-Failed\n"); ! printf("%17d\n", nfsstats.srvrpc_errs); printf("Server Faults\n"); ! printf("%13d\n", nfsstats.srv_errs); printf("Server Cache Stats:\n"); printf("%9.9s %9.9s %9.9s %9.9s\n", "Inprog", "Idem", "Non-idem", "Misses"); ! printf("%9d %9d %9d %9d\n", nfsstats.srvcache_inproghits, nfsstats.srvcache_idemdonehits, --- 314,324 ---- nfsstats.srvrpccnt[NQNFSPROC_EVICTED]); printf("Server Ret-Failed\n"); ! printf("%17u\n", nfsstats.srvrpc_errs); printf("Server Faults\n"); ! printf("%13u\n", nfsstats.srv_errs); printf("Server Cache Stats:\n"); printf("%9.9s %9.9s %9.9s %9.9s\n", "Inprog", "Idem", "Non-idem", "Misses"); ! printf("%9u %9u %9u %9u\n", nfsstats.srvcache_inproghits, nfsstats.srvcache_idemdonehits, *************** *** 328,332 **** printf("%9.9s %9.9s %9.9s\n", "Leases", "PeakL", "GLeases"); ! printf("%9d %9d %9d\n", nfsstats.srvnqnfs_leases, nfsstats.srvnqnfs_maxleases, --- 328,332 ---- printf("%9.9s %9.9s %9.9s\n", "Leases", "PeakL", "GLeases"); ! printf("%9u %9u %9u\n", nfsstats.srvnqnfs_leases, nfsstats.srvnqnfs_maxleases, *************** *** 335,339 **** printf("%9.9s %9.9s %9.9s\n", "WriteOps", "WriteRPC", "Opsaved"); ! printf("%9d %9d %9d\n", nfsstats.srvvop_writes, nfsstats.srvrpccnt[NFSPROC_WRITE], --- 335,339 ---- printf("%9.9s %9.9s %9.9s\n", "WriteOps", "WriteRPC", "Opsaved"); ! printf("%9u %9u %9u\n", nfsstats.srvvop_writes, nfsstats.srvrpccnt[NFSPROC_WRITE], >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message