OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_0-18-g18c345a
Gerrit Code Review
gerrit@openafs.org
Fri, 23 Oct 2020 12:28:52 -0400
The following commit has been merged in the master branch:
commit 18c345a9f8ee9b2ff73f23dae68757b19d3283f5
Author: Mark Vitale <mvitale@sinenomine.net>
Date: Mon Sep 28 15:40:34 2020 -0400
rxstats: correctly distinguish client and server stats
Commit d3eaa39da3693bba708fa2fa951568009e929550 'rx: Make the rx_call
structure private' inadvertently caused all rxstats (aka rpcstats) to be
recorded as client stats by hardcoding the value for isServer to 1.
Therefore, when peer or process rxstats are enabled for a OpenAFS
component, the rxstat_get_process and rxstat_get_peer utilities will
erroneously report both client and server stats as "accessed as a client".
This is particularly problematic for ubik VOTE_* and DISK_* RPC stats,
for which a given ubik server may be both client and server over time.
In this case, both client and server stats are conflated into the same
"accessed as a client" counters.
Instead, properly pass the value of isServer from
rx_RecordCallStatistics through to rxi_IncrementTimeAndCount.
Note to maintainers:
This bug is only in master and all 1.8.x releases; no 1.6.x releases are
affected.
Note:
Confusingly, isServer=1 indicates client stats and isServer=0 indicates
server stats. However, this is a quirk of the original implementation
and wire format of the RXSTATS_* RPCs and cannot be changed. isServer
is actually shorthand for "remote is server"; thus all RPC client stubs
record their rxstats with isServer == 1, and all RPC server stubs record
their rxstats with isServer == 0.
Change-Id: I2420f807e2c18ddfb9de7093a487825fa2d0a68e
Reviewed-on: https://gerrit.openafs.org/14374
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
src/rx/rx_call.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
--
OpenAFS Master Repository