Coda File System

Re: Coda & qmail problems

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Thu, 21 Sep 2000 11:33:00 -0400
On Thu, Sep 21, 2000 at 04:57:37PM +0200, Piotr K. Isajew wrote:
> I'm using coda on one machine running FreeBSD whitch is both server
> and client. A few days ago I put my mailbox (qmail's Maildir/ format)
> on a coda volume.

The qmail definition for maildir is as far as Coda is concerned a little
bit broken. The `nfs-safe' renames are defined as creating a
cross-directory link, and if that succeeds, removing the source.
However, Coda doesn't support cross-directory linking.

Mutt already incorporated a patch we sent them which makes the nfs-safe
renames work correctly in a Coda filesystem. It looks something like the
following,

  int nfs_safe_rename(srcpath, destpath)
  {
      int err;
      err = link(srcpath, destpath);

+     if (err == -1 && errno == EXDEV)
+	    return rename(srcpath, destpath);

      if (err == -1)
	return err;

      return unlink(srcpath);
  }
    

      
> Since then there are several problems (not connected with qmail).
> 
> Each process whitch tries to access /coda directory hangs on
> "coda_call". Sometimes I can manage to interrupt such a process with
> "Ctrl+C", and then I see something like this:

Do you have everything in the same volume? Coda locks on a per volume
basis, and some weird problem in the tree can now potentially lock
access to everything.

Is venus running? Can you turn up venus debugging (vutil -d 10) and see
if the client is actually trying to service the kernel's upcalls?

Jan
Received on 2000-09-21 11:49:36