[PATCH Coda 0/5]

Robert Watson rwatson at FreeBSD.org
Thu Jul 12 12:11:04 UTC 2007


On Wed, 11 Jul 2007, Jan Harkes wrote:

> On Wed, Jul 11, 2007 at 09:57:31PM -0500, Eric Anderson wrote:
>
>> I've done the patches and buildworld/kernel, and have loaded the kernel 
>> module.  All seems well.  Now I need to get the latest client running, and 
>> begin some tests.  Do you have any notes on the client, since the port is 
>> essentially defunct?  What's my fastest path to a working client?
>
>    wget http://www.coda.cs.cmu.edu/pub/lwp/src/lwp-2.3.tar.gz
>    wget http://www.coda.cs.cmu.edu/pub/rvm/src/rvm-1.14.tar.gz
>    wget http://www.coda.cs.cmu.edu/pub/rpc2/src/rpc2-2.5.tar.gz
>    wget http://www.coda.cs.cmu.edu/pub/rpc2/src/coda-6.9.1.tar.gz

Should be:

   wget http://www.coda.cs.cmu.edu/pub/coda/src/coda-6.9.1.tar-gz

>    tar -xzf lwp-2.3.tar.gz
>    ( cd lwp-2.3 ; ./configure ; gmake ; sudo gmake install )
>
>    tar -xzf rvm-1.14.tar.gz
>    ( cd rvm-1.14 ; ./configure ; gmake ; sudo gmake install )
>
>    tar -xzf rpc2-2.5.tar.gz
>    ( cd rpc2-2.5 ; ./configure ; gmake ; sudo gmake install )

rpc2 depends on perl and should probably check for it in configure.

>    tar -xzf coda-6.9.1.tar.gz
>    ( cd coda-6.9.1 ; ./configure --prefix=/usr/coda ; gmake ;
>    sudo gmake client-install )

Newer gcc revisions get awful cranky about all those string constants being 
passed around as 'char *'s :-).

>    # load the coda kernel module, kldload coda or something
>    /usr/coda/sbin/venus-setup testserver.coda.cs.cmu.edu 100000

This probably no longer applies on FreeBSD:

   You need a character device for the Coda kernel module
   On *BSD systems you probably have to run "mknod /dev/cfs0 c 93 0"

...and might lead to confusion.

>    /usr/coda/sbin/venus

I neglected to notice your instructions to explicitly load the kernel module, 
so ran Venus without it -- the error message wasn't as suggestive as might be 
hoped.  Perhaps "Load the kernel module, dammit" if consecutive ENOENT's come 
from trying to open the device nodes would be appropriate?

   13:45:07 Coda Venus, version 6.9.1
   13:45:07 Probably another Venus is running! open failed for
   /dev/cfs0,/dev/coda/0, exiting

>    ls /coda/testserver.coda.cs.cmu.edu/
>
> If everything worked ok you should see 2 directories and a file named
> 'WELCOME'.

At this point I got an ls stuck in the coda_call wait channel:

   freebsd-coda# ls /coda
   freebsd-coda# ls /coda/testserver.coda.cs.cmu.edu/
   load:0.02  cmd: ls 39084 [coda_call] 0.00u 0.00s 0% 1116k

I see UDP traffic to telemann.coda.cs.cmu.edu but no apparent forward progress 
until eventually:

   ls: /coda/testserver.coda.cs.cmu.edu/: No such file or directory

So it sounded like things sort of worked.  I'm behind four layers of NAT on 
this VM, what with Parallels, the WAP, a Soekris box, and a Newnham College 
NAT, so if NAT problems still exist for Coda, that result might not be 
surprising.  I notice also that the clock on the box may be off by an hour, 
perhaps a problem?

When I killed venus and restarted it, then the system hung:

   freebsd-coda# killall venus
   freebsd-coda# ls /coda
   NOT_REALLY_CODA
   freebsd-coda# /usr/coda/sbin/venus

   Date: Thu 07/12/2007

   13:49:59 Coda Venus, version 6.9.1
   13:49:59 /usr/coda/LOG size is 2706432 bytes
   13:49:59 /usr/coda/DATA size is 10821456 bytes
   13:49:59 Loading RVM data
   13:49:59 Last init was Thu Jul 12 13:46:24 2007
   13:49:59 Last shutdown was clean
   13:49:59 Starting RealmDB scan
   13:49:59 	Found 2 realms
   13:49:59 starting VDB scan
   13:49:59 	2 volume replicas
   13:49:59 	0 replicated volumes
   13:49:59 	0 CML entries allocated
   13:49:59 	0 CML entries on free-list
   13:49:59 starting FSDB scan (4166, 100000) (25, 75, 4)
   13:49:59 	2 cache files in table (0 blocks)

Sadly, no BREAK_TO_DEBUGGER on this box, so I will rebuild the kernel and try 
again later.

> lwp, rvm and rpc2 use automake so I think gmake is not really necessary
> anymore, but there may still be some gnu artifacts around, I think I
> removed the one more from rpc2 not too long ago. I still want to move
> the main Coda source to automake to simplify the build and get rid of
> the remaining gmake dependencies.
>
> As far as other build dependencies, I think the following are the
> minimal needed one, but they tend to come installed on most systems,
>
>    pkg-config, libreadline5-dev, libncurses5-dev, g++, flex, bison or yacc
>
>    (these were listed as build dependencies on a debian system)
>
> To remove everything from your system, the automake based libraries have a 
> convenient uninstall target, for Coda itself everything 'should' have ended 
> up under /usr/coda. I haven't actually tried installing outside of /usr or 
> /usr/local in a while though.

To do the build I needed to install gmake and perl packages.  These implicitly 
brought in gettext and libiconv, so I'm not sure if there are any explicit 
dependencies there.

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-fs mailing list