Coda File System

RPC2-2.6 problems

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Sat, 11 Aug 2007 11:48:47 -0400
For now, hold back on upgrading to rpc2-2.6.

If you are already running the latest rpc2 version, I have a fix, but I
want to make sure it really does fix the problem. I should have at least
something out by/before monday.


Phil Nelson noticed some unusual error values in his logs while testing
his Windows build of Coda-6.9.2. The importance of these unusual errors
escaped me at first but became clear once I started upgrading the CMU
Coda servers to the latest release.

The new errno translation code in RPC2 has issues. The problem is that
the system-to-rpc2 translation function was never called, while the
rpc2-to-system part of the translation was only used for multirpc
responses (i.e. by Coda clients).

This had gone mostly unnoticed because (at least on Linux/i386) the rpc2
and system error numbers tend to be for the most part identical and only
in some unusual cases do we use non-standard values, for instance when a
volume is not found or a conflict was detected. But such situation do
not occur all that frequently (and we correctly translated the responses
from the production servers that were still running the old code). The
updateclnt/updatesrv daemons also didn't exhibit any problems because
they were not translating on either side of the unicast rpc2 response,
so they were just using the wrong error values on the wire.

Of course once we upgraded some of our production servers the missing
translation became problematic because of the random mix of both old and
new clients and servers combined with quite a bit more activity and
server-server traffic during conflict resolution.


The current "hey it has been working reliably on my desktop/development
server setup for a couple weeks now, let's make a new release" strategy
is clearly not working. It also leads to last minute fixes for various
platform/distribution ports which makes it less clear whether the
source tarball/CVS tag really is identical to the one that was used to
build the binary packages that were not part of the initial release
(i.e. Debian debs/FC rpm).

So the release schedule has to change.

We will have one or more, probably source-only, pre-releases. As these
releases are expected to be ready they will be installed on (a subset of
our) production servers and clients to get better testing. This will
also allow us to make sure everything build on distributions/systems
that I don't have direct acccess to.

If no regressions are found or other changes are needed during the week
following the pre-release, it will be re-tagged as the final release.
Ideally, the only change for the final release will be the version
number.

Jan
Received on 2007-08-11 11:50:58