Coda File System

Released Coda 6.0.3 (and RPC2 1.20)

From: Jan Harkes <>
Date: Fri, 17 Oct 2003 17:55:47 -0400
Ok, I uploaded a new Coda release earlier today.

Coda-6.0.3 fixes a bunch small problems.

- Servers would occasionally crash during backups.
- Several more fixes for server-server resolution.
- More repair related fixes.
- Some fixes to the RedHat .spec file and hopefully fixed the init
  script problems.
- Correct fetch progress reporting in codacon (Phil Nelson)
- Cygwin updates (Phil Nelson)

RPC2-1.20 fixes,

- Incorrect htonl was causing gross underestimate of roundtrip times on
  slow networks and triggered many unnecessary disconnections especially
  noticable when reintegrating large files over modem links. But it
  occasionally hit even the Coda client on our webserver.
- added missed include/rpc2/rpc2_addrinfo.h to the various packaging

Also, 2.6.0-test6/7 and I believe recent FreeBSD kernels already have
the required realm patches. I still have to update the patches for
2.4.22/23 and will at some point submit them to Marcello for inclusion.

However there still are some problems which haven't been able fixed yet.
As far as I know these also existed in previous releases.

- It turns out that cfs sa /coda crashes venus. I thought that was
  fixed, but a quick test shows that it actually hasn't.

- After a partially failed or aborted server-server repair session,
  venus keeps stale objects in the cache. This causes subsequent repair
  operations to fail because the server is expecting a different version
  vector. I don't know if this is a kernel or a userspace issue. When
  this happens, the only solution is to explictly expand the conflict
  and flush the (readonly) subtrees. (cfs br foo; cfs fl foo/*; cfs er foo)

- I still have no explanation for the crashes that Steffen Neumann has
  reported. Some initial testing shows that there is significant RVM
  fragmentation and possibly some race conditions related to accessing
  already freed objects when the Coda client is trashing it's local
  cache. Having a cache larger than the typical working set is still the
  best bet.

Now that this release is out, some pending changes that can and will
break things will finally get merged into CVS.

=== soon to be merged in CVS, this is NOT in 6.0.3! ===

    IPv6 support for many of the simpler client/daemon programs, venus
    and codasrv are still pending. The new stuff should still be
    compatible with existing clients and servers as long as the machine
    has a reachable IPv4 address. I'm expecting that this code will
    break on at least NetBSD because of differences in the IPv6
    Coda servers use a vnode lookup table that is causing some 'growing
    pains' for larger servers. The re-allocation of such a table would
    fail when we reached around 100k files per volume. These tables will
    be replaced by a hash table which with moderate success allowed us
    to store about a million files in a single volume. This does require
    some incompatible RVM changes to the vnode structure.

    As we're going to be breaking the vnode structure anyways, we will
    take the opportunity to move the per file SHA1 checksum into RVM.
    This should significantly reduce server CPU usage when checksums
    are enabled.

=== again these incompatible changes are NOT in 6.0.3! ===

Received on 2003-10-17 18:01:01