Coda File System

Re: New troubles in coda land

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Mon, 4 Jul 2005 00:58:45 -0400
On Sun, Jul 03, 2005 at 05:16:05PM -0400, Jan Harkes wrote:
> On Fri, Jul 01, 2005 at 11:44:58AM -0600, Patrick Walsh wrote:
> > 	I left for a week on vacation and left tests running on our servers
> > only to come back and find a series of problems and probably coda bugs.
> > I think most of these should be reproducible.  I'll do my best to make
> > them easy to track down.
> > 
> > 1) cfs getpath fid_at_realm
> > 
> > 	This command works fine on consistent objects, but not at all on
> > inconsistent objects.  So when you get a log entry that looks like
> > this:  
> ...
> > VIOC_GETPATH: No such file or directory
> 
> Yeah, getpath doesn't set the 'GetInconsistent' flag when it calls
> fsdb::Get. I guess that could be considered a bug, but it shouldn't be
> hard to fix (depending on how many other places are using GetPath).

Actually, this turns out to be impossible to fix. The problem is that
the servers don't agree about the object's data or metadata. That is the
whole point of being 'inconsistent'. Now a little bit of this metadata
is the parent identifier, which we need in GetPath to find the parent
directory. As a result, the inconsistent dangling link that we see is
really a temporarily faked stat and readlink result, but it doesn't
actualy have a valid filesystem object associated with it.

So the current way directories are linked to their parents in getattr
means that we can not use getpath. If we set up the directory linkage on
the forward path (during lookup) it would be possible to get the path
for inconsistent objects as long as we found them as a result of a
lookup. But that is a pretty significant change.

Jan
Received on 2005-07-04 01:02:12