Coda File System

Re: repairing of removed files in conflict

From: Michael Reithinger <mreithinger_at_web.de>
Date: Sun, 4 Jul 2004 10:06:23 +0200
Juan Carlos, you are right! 
I was not aware that in this situation the directories (and not the files) are 
inconsistent, although the log said it (sometimes it's an advantage to be 
able to read :-))
After repairing the directories everthing works correctly.

Maybe you have also such a simple solution for my vice versa problem.
Same preconditions:
But this time:

01   client1: mkdir /coda/test_domain/test_vol/test_dir

02   client2: echo line1 > /coda/test_domain/test_vol/test_dir/test_file
03   client2: cfs disconnect
04   client2: echo line2 >> /coda/test_domain/test_vol/test_dir/test_file

05   client1: rm /coda/test_domain/test_vol/test_dir/test_file

06   client2: cfs reconnect

It is almost the same, but this time the connected client1 removes the file 
and the disconnected client2 appends a line.

After a while client2 tries to reintegrate. Venus prints out

09:32:39 Checkpointing test_vol
09:32:39 to /var/lib/coda/spool/1001/test_domain_test_vol.tar
09:32:39 and /var/lib/coda/spool/1001/test_domain_test_vol.cml
09:32:39 Local inconsistent object 
at /coda/test_domain/test_vol/test_dir/test_file, please check!

09:32:39 Reintegrate: test_vol, 1/1 records, result = No such file or 
directory
09:37:28 volume test_vol has unrepaired local subtree(s), skip checkpointing 
CML!

09:37:38 Local inconsistent object 
at /coda/test_domain/test_vol/test_dir/test_file, please check!


07   client2: ls -l /coda/test_domain/test_vol/test_dir
        ... test_file -> @7f000005.ffffffff.00080006_at_test_domain

Until here erverthing seems to be allright.

08   client2: cfs beginrepair /coda/test_domain/test_vol/test_dir/test_file
09   ls -l /coda/test_domain/test_vol/test_dir/test_file
        ... global -> @7f000005.00000084.00000083_at_test_domain
        ... local

There is another dangling symlink for global!

10   client2: cfs endrepair /coda/test_domain/test_vol/test_dir/test_file
11   client2: repair
12   repair > beginrepair /coda/test_domain/test_vol/test_dir/test_file
       Too few directory entries
       Could not allocate replica list
       beginrepair failed.

how can I repair my test_file?





> Hi:
>
> As you don't mention it, have you tried repairing the conflicts using the
> "repair" tool?
> As far as I know, for this you have to do a "repair" in the command line,
> and then "beginrepair 'filetorepair'". If you haven't, see the "Repairing
> an inconsistent directory", section 2.6, of the "Coda File System User and
> System Administrators Manual":
>
> http://www.coda.cs.cmu.edu/doc/html/manual/x518.html
>
> Saludos,
> Juan Carlos
>
> "Michael Reithinger" <mreithinger_at_web.de> escribió en el mensaje
> news:200407021330.48094.mreithinger_at_web.de...
>
> > I am currently playing around with coda, and coda seems to have some
>
> problems
>
> > with files which are modified on one client and removed on an other
>
> client.
>
> > Sample Scenario:
> >
> > Preconditions:
> > a) A test_vol volume is mounted in the route volume.
> > b) Both client are connected to the server, till now everthing works
> > fine. c) on client 2 venus was invoked with venus -d 1000
> >
> >
> > 01   client1: mkdir /coda/test_domain/test_vol/test_dir
> >
> > 02   client2: echo line1 > /coda/test_domain/test_vol/test_dir/test_file
> > 03   client2: cfs disconnect
> > 04   client2: rm /coda/test_domain/test_vol/test_dir/test_file
> >
> > 05   client1: echo line2 >> /coda/test_domain/test_vol/test_dir/test_file
> >
> > 06   client2: cfs reconnect
> >
> > After a while client2 tries to reintegrate. Venus prints out
> >
> > 12:48:31 Checkpointing test_vol
> > 12:48:31 to /var/lib/coda/spool/1001/test_domain_test_vol.tar
> > 12:48:31 and /var/lib/coda/spool/1001/test_domain_test_vol.cml
> > 12:48:31 Local inconsistent object at
> > /coda/test_domain/test_vol/test_dir, please check!
> >
> > 12:48:31 Reintegrate: test_vol, 1/1 records, result = Unknown error 198
> > 12:51:24 volume test_vol has unrepaired local subtree(s), skip
>
> checkpointing
>
> > CML!
> >
> > 12:51:39 Local inconsistent object at
> > /coda/test_domain/test_vol/test_dir, please check!
> >
> >
> > 07   client2: cfs lv /coda/test_domain/test_vol/test_dir
> >        Status of volume 0xffffffff (4294967295) named "Repair"
> >        Volume type is Backup
> >        Connection State is Connected
> >        Minimum quota is 0, maximum quota is unlimited
> >        Current blocks used are 0
> >        The partition has 0 blocks available out of 0
> >        Write-back is disabled
> >
> >
> > 08   client2: cfs lv /coda/test_domain/test_vol
> >        Status of volume 0x7f000005 (2130706437) named "test_vol"
> >        Volume type is ReadWrite
> >        Connection State is WriteDisconnected
> >        Minimum quota is 0, maximum quota is unlimited
> >        Current blocks used are 6
> >        The partition has 19788276 blocks available out of 37928300
> >        Write-back is disabled
> >        *** There are pending conflicts in this volume ***
> >        There are 1 CML entries pending for reintegration
> >
> > 09   client2: ls -l /coda/test_domain/test_vol
> >      drwxr-xr-x    2 michaelr nogroup      2048 2004-07-02 12:46 test_dir
> >
> >
> >
> > How do I bring back my test_vol to a connected state?
> >
> > Michael
> >
> > PS: my coda version is 6.0.6 (debian)
Received on 2004-07-04 04:09:32