Coda File System

Re: cfs checkservers : very slow to get an answer!

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Mon, 7 Apr 2008 12:24:44 -0400
On Mon, Apr 07, 2008 at 12:03:05PM +0200, Pierre LEBRECH wrote:
> I'm using coda 6.9.3. On coda clients, when I'm running "cfs
> checkservers", it works but I get an answer after 23 seconds. Why it is
> so slow? All the servers are in a LAN and these servers are just for the
> moment in a test phase. So they are doing nothing at all.

Not sure, if the client has connections to all servers it typically
takes a fraction of a second. Only after a disconnection would it be
slow, especially when the server still thinks the old callback
connection is valid.

What happens in such a case is that the client sends it's probe over a
new connection, the server then finds the old connection and tries to
send a backprobe to the client. However the client has discarded it's
end of the connection (including the encryption keys) because it thought
it was disconnected and as such cannot decrypt the incoming messages.

The server will retry sending it's backprobe request several times until
it gives up on the old connection, establishes a new connection and then
will succeed.

So any time a client believes the server is unreachable and throws away
any existing connections (and keys) you would get a temporary stall
during reconnection while the server is trying to use the old
connection. If the client had actually been disconnected for a longer
time (i.e. more than 5 or 10 minutes) the server would have tried a
periodic keepalive ping and have cleaned up it's end of the dead
connection.

Running 'codacon' in a terminal window should give a little bit of
feedback about what the client is trying to do, it shows various things
like cache replacement, remote calls to servers, connection state
changes and periodic pings.

Jan
Received on 2008-04-07 12:25:49