Coda File System

Re: SMB / Coda / venus hangs Additional Informations

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Thu, 14 Aug 2003 12:22:07 -0400
On Thu, Aug 14, 2003 at 11:16:07AM -0400, Greg Troxel wrote:
> Fair enough - i have no issues with requiring anonymous tokens.  My
> point was that having connected mode operation work but not be able to
> reintegrate is fundamentally opposed to 'the coda way'.

I think connected mode operation in principle is fundamentally opposed
to the way Coda works, but that's just me.

Problems are that a (write-)disconnected client is trying to play the
role of a server, but in many ways fails because it has incomplete and
possibly outdated information. So disconnected operation will never be
as 'perfect' as connected operation.

On the other hand, while connected there is no guarantee (in fact it is
highly unlikely) that we will never switch to write-disconnected or
disconnected operation. As a result, people that expect some things from
Coda in connected mode get confused/annoyed when the disconnected mode
operation kicks in.

As connected mode is more reliable, it is used as much as possible (even
by me) and bugs in reintegration and resolution simply aren't fixed as
quickly. By always running write-disconnected there is more 'pressure'
to fix the various reintegration bugs. In fact our webserver for a while
would do 'cfs purgeml .../html; cfs checkservers; cfs strong; cfs wr'
at the start of any regular cronjobs, and a 'cfs purgeml .../html; cfs cs' 
around the end, just for good measure. Luckily things are getting
better, and now they don't do that anymore (maybe just a checkservers).

> My own view, when I'm feeling extremist, is that coda tokens and the
> auth2 stuff should go away, and we should instead use GSS-API, of
> which some mechanisms can support anonymous tokens.

That would be another solution. It is actually interesting to see the
dynamics of development, there is a continuing back and forth between
using common off-the-shelf libraries and functionality, and trying to
keep everything under local control.

The advantage of local implementations is that it is easier to adapt to
special cases, and fewer dependencies when someone wants to build or
install Coda. Using generic libraries means that other people will
(hopefully) fix any bugs for you and that you basically push any
complicated setup and installation issues to the other system.

But then you have to track changes in their API's, and typically keep
workarounds/support for older versions. It is also unclear whether those
libraries are easily ported/maintained for all platforms and CPU types.

Jan
Received on 2003-08-14 12:23:27