Article View: mod.computers.apollo
Article #215Re: USENET news software and Apollo Domain/IX
From: Nathaniel Mishkin
Date: Wed, 23 Jul 1986 19:13
Date: Wed, 23 Jul 1986 19:13
61 lines
3774 bytes
3774 bytes
In-Reply-To: decvax!tektronix!sequent!mntgfx!dclemans@yale.UUCP, mon, 14 jul 86 18:06:33
We have the USENET news software (news 2.10.3 beta, rn, vn) running
on the Apollo ring at Mentor Graphics....
In this environment, the BIG problem with the USENET software
(specifically inews) is that it depends on being able to write to
the news active file (and the history file?) anytime it wants to.
This capability is NOT supported in general on a multi node Domain/IX
environment; i.e. if a news reading program has the "active" file
open for reading, inews/rnews WILL NOT be able to open it with write
access (unless both the news reader program and inews/rnews are running
on the same node).
Another message has dealt (or will deal) with how to get around this
problem. I just want to point out that the reason that this facility
is not available is because it is fundamentally difficult to implement
with any guarantee of reasonable behavior. It's hard enough to implement
systems (and write programs that use) a facility that allows simultaneous
readers and writers of a single file on a single system, but when you
have multiple systems that don't even have a common physical memory,
it's nearly impossible.
In addition to the simultaneous readers and writers problem, "transient
file system failures" (e.g. network partitions that makes some file
temporarily unavailable) also screw up "traditionally written" programs.
(E.g. pieces of UUCP have the potential for serious problems if they're
not run on the node on which "/usr/spool/uucp" and "/usr/lib/uucp" actually
reside.)
These problems really demand more abstract solutions. E.g. in the case
of the Usenet sofware, there should be servers answering requests about
what the state of the active newsgroups are. Of course, the Usenet
software, along with tons of other Unix software, was developed before
there were distributed file systems so the need didn't seem pressing
at the time.
To get around this, I modified "rn" to make a copy of the active
file when it starts up and from then on reference only the copy.
I also stuck some "ulkob -f" (or equivalents) in at various places.
With this there's still spurts when a few articles disappear, but
it's not too bad.
"ulkob -f" is a power tool. Use it incorrectly and you could get hurt.
I'd like to know why/where you found it necessary to use it.
Another problem is that there are scattered uses of uninitialized
local variables throughout the USENET software. While you can get
away with that most of the time on typical UNIX architectures with
entirely separate address spaces, you can't on Domain/IX where an
address space is shared.
While our architecture may not be identical to vanilla Unix, it seems
clear to me that depending on the initial values of uninitialized local
variables is treading on thin (or no) ice. I.e. I think this qualifies
as a Usenet software bug.
-- Nat Mishkin
Apollo Computer Inc.
apollo!mishkin
-------
Technical Details
Message-ID:
<8607240725.AA23859@uw-beaver.arpa>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!seismo!lll-crg!mordor!sri-spam!nike!ucbcad!ucbvax!apollo.UUCP!mishkinShow Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!lll-crg!mordor!sri-spam!nike!ucbcad!ucbvax!apollo.UUCP!mishkin From: mishkin@apollo.UUCP (Nathaniel Mishkin) Newsgroups: mod.computers.apollo Subject: Re: USENET news software and Apollo Domain/IX Message-ID: <8607240725.AA23859@uw-beaver.arpa> Date: Wed, 23-Jul-86 15:13:32 EDT Article-I.D.: uw-beave.8607240725.AA23859 Posted: Wed Jul 23 15:13:32 1986 Date-Received: Fri, 25-Jul-86 23:48:41 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 61 Approved: apollo@yale-comix.arpa