Coda File System

Various problems and comments

From: <bwoodard_at_cisco.com>
Date: Sun, 05 Jul 1998 14:38:34 -0600
Excuse me if you get two emails, I might have sent an email to the
wrong place before.

I think that there is something wrong with the ioctl interface to
venus. There are a couple things that I just can't seem to get
working:

1) first of all I can't seem to set acl's. When I run "cfs sa" I get
"Connection timed out" instantly back.

[bwoodard_at_trill repair]$ cfs sa /coda System:AnyUser  rl
/coda: Connection timed out

I did a strace and the problem seems to be in this little bit of code:

open("/coda/.CONTROL", O_RDONLY)        = 3
ioctl(3, 0x40145602, 0xbffffba0)        = 0
close(3)                                = 0
open("/coda/.CONTROL", O_RDONLY)        = 3
ioctl(3, 0x40145601, 0xbffffba0)        = -1 ETIMEDOUT (Connection timed out)
close(3)                                = 0

2) I can't seem to repair anything:

First of all in my coda console I am getting:

14:17:46 Local inconsistent object at
/coda/home/bwoodard/Mail1/Contacts, please check! 

So I look in 3.6.2 of the manual and it says to use repair but my
experience seems a bit different than what is documented:

[bwoodard_at_trill coda-4.6.1]$ repair
This repair tool can be used to manually repair server/server
or local/global conflicts on files and directories.
You will first need to do a "beginrepair" to start a repair
session where messages about the nature of the conflict and
the commands that should be used to repair the conflict will
be displayed. Help message on individual commands can also be
obtained by using the "help" facility. Finally, you can use the
"endrepair" or "quit" to terminate the current repair session.
repair > begin
Pathname of object in conflict? []: /coda/home/bwoodard/Mail1/Contacts
 ENABLEREPAIR: /coda/home/bwoodard/Mail1/Contacts/: No such file or directory
repair >          

When I run a strace, I find that once again an ioctl is failing: 

open("/coda/.CONTROL", O_RDONLY)        = 3
ioctl(3, 0x401456d3, 0xbffffbd8)        = 0
close(3)                                = 0
open("/coda/.CONTROL", O_RDONLY)        = 3
ioctl(3, 0x401456c5, 0xbfff9980)        = 0
close(3)                                = 0
open("/coda/.CONTROL", O_RDONLY)        = 3
ioctl(3, 0x401456c5, 0xbfff9980)        = 0
close(3)                                = 0
open("/coda/.CONTROL", O_RDONLY)        = 3
ioctl(3, 0x401456c0, 0xbfffb224)        = -1 ENOENT (No such file or directory)
close(3)                                = 0 

I suspect that the problem around repair.cc:beginrepair() around:


    /* Obtain names of rw replicas */
    vioc.out_size = (short)sizeof(space);
    vioc.in_size = 0;
    vioc.out = space;
    bzero(space, (int)sizeof(space));
    rc = pioctl(prefix, VIOC_ENABLEREPAIR, &vioc, 0);
    if (rc < 0)
        {
        if (errno == EWOULDBLOCK)
            {
            printf("Repair in progress on volume at \"%s\"\n", prefix);
            /* Print out Workstation/IP addr here --- Satya */
            }
        else repair_perror(" ENABLEREPAIR", prefix, errno); /* some other error */
        repair_finish(repv);
        return;
        }
    sprintf(repv->rodir, "%s", reppath);
 
but I don't understand enough about the way the code works to say
more.

3) (documentation) to be able to get codacon working, I needed to put
my current IP address after it e.g. "codacon 127.0.0.1" or else it
trys to bind to whatever IP address I booted up with. There isn't even
a codacon man page to tell you this and it isn't listed in the
manual. However, I am confused should I be watching a codacon or
should I be watching /usr/coda/etc/console it seems to have more
useful information in it?

-ben
Received on 1998-07-05 16:42:55