Coda File System

Re: repair tool trouble

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Thu, 1 Nov 2001 14:49:12 -0500
On Thu, Nov 01, 2001 at 03:13:03AM -0600, Ryan M. Lefever wrote:
> Then on machine A, this makes /coda/testvol a symbolic link, indicating a
> conflict.  So, I perform the following:
> 
> >$ repair
> >repair > beginrepair /coda/testvol
> >No such replica vid=0xffffffff
> >Could not allocate replica list
> >beginrepair failed.
> >repair > quit
> 
> Then, /coda/testvol now exists as a directory, and there is now a
> /coda/testvol/global symbolic link and directories named
> /coda/testvol/local & /coda/testvol/dir.  So, I try repair again:

What kernel are you using, /coda/testvol/dir shouldn't exist anymore and
is probably the reason the repair is failing. It simply can't figure out
which object that is (as it 'temporarily' doesn't exist anymore).

In any case, after a repair failure like this, doing 'cfs endrepair
/coda/testvol' (or 'cfs er' for short) should collapse the conflict
back into a symlink.

> venus on machine A and purge coda.testvol.  As a side question, why is the
> creation of directory dir in 2 different network partitions a conflict
> that must be manually repaired?  Why isn't it automatically resolved?  

Because they both have different unique file identifiers. They are as
far as the filesystem is concerned two totally different objects that
happen to have the same name in /coda/testvol.

Just like when you do 'echo onetwothree > /coda/testvol/file' and
'echo fourfivesix > /coda/testvol/file'. We create 2 different objects,
X containing 'onetwothree', and Y containing 'fourfivesix'. Then we
create a directory entry 'file' in /coda/testvol that points to X on one
server and Y on the other server. The objects themselves are
'runt-resolved' i.e. after resolution both servers have both X and Y,
but both versions of the /coda/testvol directory cannot be resolved.

> Also, where can I find out exactly what kinds of operations result in
> automatically resolvable conflicts and which do not?

Any discrepancy between the servers is a 'conflict', all replicas are
keeping a log of past directory operations we can successfully resolve
any conflicts where we can successfully merge these logs into one.

Jan
Received on 2001-11-01 14:49:17