Coda File System

Re: fsobj::dir_Creat: Create failed, and resolve problems

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Thu, 22 Jul 2004 22:34:39 -0400
On Sat, Jul 17, 2004 at 11:33:11AM -0500, Troy Benjegerdes wrote:
> On Fri, Jul 16, 2004 at 10:21:17PM -0400, Jan Harkes wrote:
> > On Fri, Jul 16, 2004 at 03:29:53PM -0500, Troy Benjegerdes wrote:
> > > On my linux-kernel torture test.. there seem to be some issues when the
> > > quota fills up.. (but it is resolving a bunch of stuff)
> > > 
> > > 15:24:33 RS_ForceFile: Error 122 in AdjustDiskUsage
> > 
> > EDQUOT, quota exceeded. Interesting, both replicas are not in sync, some
> > files probably exist on one, other files on the other replica. Both
> > replicas are probably under quota, but we can't synchronize them because
> > the union of the two would exceed our current quota.
> 
> So, what would be the right thing to do in this case? I would think the
> client should have a few more checks and block new file writes when it
> thinks you are going to get over quota (maybe even blocking at 95%
> quota, or something configurable).

The client can't know how much quota is left on the servers. I can have
a client with a 100MB cache, but there could be several GBs of quota
available. And then some of the servers might be (temporarily)
unreachable.

The only 'right' thing that I can think of is to not enforce the quota
check during resolution. So a user with a doubly replicated volume could
end up using up to twice the quota amount, but that only happens when he
first completely fills up one replica, and then fills up the other while
never seeing both servers at any given time (a triply replicated volume
would max out at three times quota).

> I would also make the same argument for filling up a directory.. venus
> should block file writes instead of dieing ;)

I've been trying for a while to make it return a normal ENOSPC error
code, but the error is clearly not propagated back all the way to
userspace.

> Also, is there a way to get 'cfs lv' to tell me what a specific server
> thinks for disk/quota usage? How does it decide which server to look at?

That is kind of random. I believe it actually asks all servers, but only
displays the data of the server that responded first or something.

Jan
Received on 2004-07-22 22:36:28