Coda File System

Re: Confused about connection properties

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Fri, 14 May 2004 13:36:43 -0400
On Fri, May 14, 2004 at 02:38:21AM -0400, shivers_at_cc.gatech.edu wrote:
> This makes no sense to me:
>     [shivers_at_tinhau m1]$ cfs checkservers
>     Contacting servers .....
>     All servers up
>     [shivers_at_tinhau m1]$ cfs lv /coda/lambda.csail.mit.edu
>       Status of volume 0x7f000000 (2130706432) named "coda:root"
>       Volume type is Replicated
>       Connection State is Disconnected
>       Write-back is disabled
>       There are 32 CML entries pending for reintegration
> 
>     [shivers_at_tinhau m1]$ cfs wr /coda/lambda.csail.mit.edu
>     [shivers_at_tinhau m1]$ cfs lv /coda/lambda.csail.mit.edu
>       Status of volume 0x7f000000 (2130706432) named "coda:root"
>       Volume type is Replicated
>       Connection State is Disconnected
>       Write-back is disabled
>       There are 32 CML entries pending for reintegration

'cfs wr' aka. writereconnect only tells venus that it is ok to try to
return to connected mode by reintegrating in the background. However if
the volume is disconnected it doesn't do anything (it only helps for
write-disconnected). And even then the reintegration is in the
background, so checking immediately doesn't help. Once in a while a
reintegration thread will walk by and perform a couple of simple tests,
are the servers reachable, is there a conflict, have the operations
'aged' enough, etc.

The disconnected -> write-disconnected state change should get triggered
by the 'cfs cs/checkservers' command. For each server that changes state
from down to up, an event is sent to the volumes hosted by those servers
that triggers a state transition. These transistion can be held off
by pending activity in the volume (active writer modifying the volume,
resolution). Only if there are no more CML entries and the connectivity
is deemed 'strong' the client will try to transition the volume to
connect mode operation.

As you can see there are a lot of variables here why even when the
servers are up, the volume isn't starting to reintegrate. wr is only a
hint to trigger a transition in the background, so ofcourse it returns
successfully (we successfully hinted). What you are looking for is
probably something like 'cfs forcereintegrate / cfs fr', which sometimes
seems to work.

More likely something is preventing the volume transition. The Coda
client log (/var/log/coda/venus.log) might hold some clues to what
exactly is the problem here.

Jan
Received on 2004-05-14 13:41:19