In comp.os.linux.advocacy, Tim Smith
<reply_in_group@xxxxxxxxxxxxxxxx>
wrote
on Thu, 18 Dec 2008 11:22:32 -0800
<reply_in_group-EE3094.11223218122008@xxxxxxxxxxxxxxxxxx>:
> In article <u9iq16-me1.ln1@xxxxxxxxxxxxxxxxxxxxxxx>,
> The Ghost In The Machine <ewill@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
>> Oh, I see. So if the Yorktown is retrofitted with
>> Microsoft Windows Vista, they won't have these problems if
>> the database decides to barf while the app divides by zero?
>> Or was it the app barfing while the database divides
>> by zero? Anyway, neither one should have caused a network
>> futzup, which doomed the Yorktown's control/propulsion
>> system apparently.
>
> The failure had nothing to do with the OS, Ghost, as you (of course)
> fully know. Application divides by zero. Application does not handle
> divide by zero exception, so the OS kills the application. Application
> happens to be crucial to the operation of the ship. Ship stops
> operating.
>
> That's how it works on Windows 2000. That's how it works on Vista.
> That's how it works on Linux. That's how it works on OS/2. That's how
> it works on Solaris.
>
Assuming this is an accurate account,
http://catless.ncl.ac.uk/Risks/19.91.html#subj7.2
is pretty interesting, in a morbid sort of way:
The official account of the fault, by Vice Admiral
Henry Giffin, was quoted as follows:
[quote] The Yorktown lost control of its propulsion
system because its computers were unable to divide
by the number zero ... The Yorktown's Standard
Monitoring Control System administrator entered zero
into the data field for the Remote Data Base Manager
program. That caused the database to overflow and crash
all LAN consoles and miniature remote terminal units.
[endquote]
Um....unless computers have a special token for "infinity",
how would one expect them to divide by zero? Even most
mathematicians can't handle division by zero, except
by waving around concepts such as poles, singularities,
domains and ranges; for example, f(z) = 1/(z - 3) has the
domain C - {3} and the range C - {0} in most formulations
(where C is the complex plane), with a pole or singularity
at the point z=3. They then tiptoe carefully around that
pole and move on...
The article goes on to question this account (what exactly
is a "LAN console"? Is that like a remote Xterminal?) for
various reasons. I do not agree with its assessment that
NT bluescreened, although it's possible; more likely the
crash of the database/application system simply caused all
other applications on the auxiliary "LAN Consoles" (other
NT systems, presumably, running a custom app connecting to
the main server) dependent on that database to crash as
their connections closed. However, I'm merely guessing.
Note that this is not an NT problem as such, though it
might be an application client and/or server one.
Might as well write a Java servlet that divides by zero,
or commands the database to divide by zero,
then expect to get any work done on remote clients
dependent thereon...
I would also think that any decent database system,
assuming that's where the bug is (I'm not convinced),
would at most close the connection where the divide by
zero occurred (presumably the application commanded it
to do that, in a SQL query line; another possibility
is a call to a stored procedure). The Hypersonic (the
default JBoss database) database in particular simply
returns an error, causing a SQLException in Java, which
is the more or less proper behavior (in Java, anyway).
Postgresl (www.postgresql.org) did the same.
http://technocrat.net/d/2007/2/26/15337
makes the very interesting suggestion that the Yorktown,
far from being the major failure everyone seems to think
it is, was actually at the time an experimental testbed.
Briefly put, the code put thereon was pre-production
(though later on in the article it mentions the Standard
Monitoring and Control System was out of date, which is a
little puzzling), and they were putting the code through
its paces by doing all sorts of tests; the divide by zero
was but one thereof.
It also suggests the press simply wanted to rag on
Microsoft, and garbled the message. (Considering the
presumed embarrassment of having a warship towed in anyway,
one suspects the message was already garbled as the Navy
practiced its version of PR damage control.)
Bad design somewhere, and NT isn't the best of operating
systems, but I don't know if NT is totally at fault,
fumbled handling the fault, or just in the wrong place at
the wrong time.
--
#191, ewill3@xxxxxxxxxxxxx
Insert random misquote here.
** Posted from http://www.teranews.com **
|
|