Coda File System

Re: newbie question

From: Jan Harkes <>
Date: Tue, 18 Nov 2003 15:53:48 -0500
On Tue, Nov 18, 2003 at 04:45:33PM -0300, Lucas wrote:
> Thanks Jan, I already realized that...
> But this is the error message on the client side (although server is
> running properly and volume 'volumen' is created):
> # cfs mkm /coda/ volumen
> /coda/ No such file or directory

Ehh, let's walk through the steps,

Client receives request for
Client resolves this to an ip-address.
Client connects to Coda server at this address.
Client asks which volume should be mounted as the root of the tree,
  server responds with 'volumen'.
Client asks where the volume 'volumen' is located.
Server responds with 'at this ip-address' (should be address of the server).

Client connects to server that is hosting the volume, gets the top-level
directory in the volume and mounts that as a directory at

If your client does not have a directory at that
means that something in this sequence went wrong. Now we don't really
know what is wrong, but there should be enough clues to figure this out.

- If "clog" works, then the initial
  resolution is probably ok as we use the identical code to map the
  realm name to a (set of) ip-address(es).

- If volume creation worked, the server is probably running, so the
  second step is most likely fine as well.

- You could start 'codacon' in a separate console or xterm on the client
  before you start venus. It will show a lot of 'what venus is doing'
  stuff and should give a reasonable indication how far we're getting.

example. I just started a clean client and did ls /coda/,
this is what came up,

    $ codacon
    codacon: bind to localhost failed, venus not running?
    NewConnectFS ( 15:36:36 )
    NewConnection ( 15:36:36 )
    BackProbe ( 15:36:36 )
    GetRootVolume ( 15:36:37 )

 We just connected to one of the three Coda rootservers. And asked for
 the name of the rootvolume at

    NewConnectFS ( 15:36:37 )
    NewConnection ( 15:36:37 )
    BackProbe ( 15:36:37 )
    GetVolumeInfo ( 15:36:37 )

 A connection to another rootserver is made and we get the 'volume
 replication information' for the rootvolume. This tells us things like
 how many replicas we have and what their identifiers are. The name of
 the rootvolume is 'vmm:root'.

    GetVolumeInfo ( 15:36:37 )

 Getting information for one of the replicas, this information will
 contain things like which server (ip-address) will be hosting the

    NewConnectFS ( 15:36:37 )
    NewConnection ( 15:36:37 )
    BackProbe ( 15:36:37 )
    GetVolumeInfo ( 15:36:37 )
    GetVolumeInfo ( 15:36:37 )

  Getting information of the other two volume replicas.

    NewConnectFS ( 15:36:37 )
    BackProbe ( 15:36:37 )
    NewConnectFS ( 15:36:37 )
    BackProbe ( 15:36:37 )
    NewConnectFS ( 15:36:37 )
    BackProbe ( 15:36:37 )

  Set up connections to the 3 replicas.

    GetAttr ( 15:36:37 )
    Fetch [2] ( 15:36:37 )
    fetching ( 100% ( 15:36:37 )

  Fetched the attributes and data of the top level directory.

Now depending on how far your client is getting several things could be
wrong. We're either getting the wrong rootvolume name and the server
doesn't know anything about which replicas are available.

Or the server doesn't really know it's own IP-address is and gives wrong
information when we ask it about the location of the volume replica.
This often happens when /etc/hosts contains an entry similar to
'' and as a result the server thinks it's
ip-address is However when the client sees this it will try
to connect over the loopback interface to a server that is ofcourse not
running on the client.

There is also a command called 'getvolinfo' (installed on the server)
this contains the 'get volume location information' code and can be used
to check if it makes any sense.

    # getvolinfo vmm:root
    RPC2 connection to successful.
    Returned volume information for vmm:root
	    VolumeId 7f00049a
	    Replicated volume (type 3)
	    ServerCount 3
	    Replica0 id c7000085, Server0
	    Replica1 id c9000082, Server1
	    Replica2 id dd000085, Server2

Received on 2003-11-18 15:56:22