[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

INTERNET namespace: who needs it?



   Date: Sun, 15 Oct 89 05:32 EDT
   From: cjl@AI.MIT.EDU (Chris Lindblad)

     1.  NETI:ENSURE-DOMAIN-SERVICE-ENTRIES mistakenly tries to update the
	 INTERNET namespace for uninterned hosts with names like INTERNET|10.2.0.6
	 If you have an internet namespace, you just get these trash hosts in
	 your namespace, which is why this bug hadn't been discovered.
	 If you don't have an internet namespace, the function just blows out.

     2.  Old world loads that believe in the existence of the INTERNET namespace
	 do not react in a civilized manner when the namespace server tells them
	 there isn't an Internet namespace.  The just immediately ask the
	 namespace server about the internet namespace again.  Just a couple of 
	 hosts behaving this way can bog down the namespace server with their
	 continuous requests.  We worked around this with a real kludge.  In
	 (flavor:method :server-top-level neti:namespace server) we sleep for 
	 10 seconds every time we get an object-not-found-in-search-list error
	 for the namespace "INTERNET".  This keeps the namespace server from
	 bogging down.

There's a simple solution for both of these problems.  Instead of
deleting the INTERNET namespace completely, just get rid of all the
hosts in it.  That's what I did when I built a new world for our
namespace server.

   Incidentally, even though we have many large namespaces (though none as large
   as the internet namespace is), we don't use changes files because they
   invariably screw up.  Instead, we just let the namespace servers reload entire
   namespaces whenever they boot and get updates.  This has solved many of our
   namespace inconsistency problems.  This probably cant be done if you have an
   INTERNET namespace, because of its size.

Hmm, I've never had any problems with the changes file for our
namespace.

However, I *can* attest to the fact that the INTERNET namespace should
have a changes file if it has all the hosts in it.  I discovered that
we didn't when I made the above change, and that was the reason that
it had been taking 2.5 hours for the namespace server to boot.

I have noticed some problems when we switched from the namespace to
the domain servers.  The root domain servers generally time out on
requests for information about nonexistent domains.  The Symbolics
resolver marks a server as unavailable for fifteen minutes whenever it
does this.  Therefore, after some failing lookups, the next few
lookups may fail immediately, without even sending any domain queries,
because all the servers are believed to be down.  My solution has been
to use a site resolver.  I replaced all the Root Domain Server Address
fields with just the address of our site domain server (it's also our
gateway to the outside networks, so if it's down the Lispm wouldn't be
able to reach a real root server), and set
NETI:*DOMAIN-DEFAULT-RECURSION-REQUEST* to T.  I also set
NETI:*DOMAIN-SITE-RESOLVER-ERROR-IMPLIES-STANDALONE* to NIL, so that
the domain system won't be disabled when the site server is down.
Finally, the namespace entry for the site server specifies use of the
TCP DOMAIN protocol, not the UDP DOMAIN-SIMPLE protocol, so that the
Lispm won't time out while it's recursing.

As an alternate solution to the above problem, Symbolics has suggested
patching the function that computes the default service entries for
hosts gotten from the Root Domain Server Address list to use the TCP
protocol rather than the UDP protocol.  My solution has been working
for some time, so I haven't bothered trying this one myself.

						barmar