Coda File System

DNS lookups and disconnected mode

From: <u+codalist-p4pg_at_chalmers.se>
Date: Fri, 26 Oct 2007 10:29:50 +0200
Hello,

I have discovered a sad consequence of how Venus is using DNS.

- it relies on DNS to find realm servers -- perfectly correct
- it tries to refresh its knowledge about the ip-addresses of the servers,
  which is very, very good

Unfortunately, as soon as we physically disconnected a machine
from the net so that it can not reach DNS, it becomes hardly possible to
use Coda. Venus is making DNS queries all the time and waiting for answers
which never come.

One workaround is to ensure that the network is logically shut down,
there are no interfaces/routes for Venus to use.

Another workaround is to ensure that /etc/resolv.conf does not contain
any DNS server addresses.

Both have two major drawbacks though:
- require root privileges and possibly questionnable changes
  in the local setup
- represent an extra burden

(Apparently, some setups tend to do it automatically at network disconnection
but we can not rely on that!)

Any other workaround-via-client-setup like using "realms" file seems
as bad or worse. Disconnected operation is an inherent feature of Coda
and should be supported out of the box without relying on extra local tweaks.

Venus can gracefully handle rpc2 timeouts,
it might be possibly taught to handle DNS timeouts gracefully as well?

How hard is it? Do we need a non-standard/non-existent DNS-resolver
library?

As another kind of workaround, a cfs disconnect or similar command
could short circuit DNS resolution in Venus. Though being an extra burden,
this would at least allow a non-root user to make the switch.
Still, I would strongly prefer making Venus smarter about DNS reachability.

Best regards,
Rune
Received on 2007-10-26 04:33:20