comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: How would Ariane 5 have behaved if overflow checking were not turned off?
Date: Thu, 17 Mar 2011 20:58:59 +0000
Date: 2011-03-17T20:58:59+00:00	[thread overview]
Message-ID: <m2lj0dh3ak.fsf@pushface.org> (raw)
In-Reply-To: 4d8200ce$0$43837$c30e37c6@exi-reader.telstra.net

"robin" <robin51@dodo.com.au> writes:

> Simon Wright wrote in message ...
>>"robin" <robin51@dodo.com.au> writes:
>>
>>> Anyone competent in real-time programming would never have let the
>>> software go with unhandled overflow, because such an event would
>>> result in failure of the mission.
>>
>>The engineers, being competent in tightly-constrained real-time
>>programming, found that installing exception handlers cost cpu cycles
>>they could not afford, so looked at all the potential overflow sites and
>>found that _this_ one could only occur if there was a hardware
>>failure.
>
> Nonsense.  The Full Report says nothing of the kind.

Oh yes it does. Well, very very nearly. See
http://esamultimedia.esa.int/docs/esa-x-1819eng.pdf page 5 second
para. Especially note the last sentence.

>> Even if they had installed an exception handler, the only proper
>>response would have been to shutdown this node and hand over to the
>>alternate;
>
> No, the exception handler could have done something sensible, such as
> using the maximum integer value, thus allowing the trajectory to
> continue.  Better still would have been to include a magnitude test in
> the code that avoided the need for an error handler.
>
>> and this was the action that would result from not having an
>>exception handler in the first place. So, after considerable thought,
>>they decided against having an exception handler.
>
> There were 7 places in the code in the vicinity where overflow could
> occur.  Four were chosen for protection, but three were not.  That was
> the fatal flaw.

I know that the last but one paragraph on that page (5) starts "Although
the failure was due to a systematic software design error..." but
.. where I come from there are system designers and software
designers. The system people work out the requirements and the software
people - after making sure that the requirements appear sensible and
questioning them if they don't - just get on and do what has been agreed
by people probably on a higher pay grade and certainly with the assigned
responsibility. So I don't agree that it was a software design
error. You may say that it makes no difference; I say it affects who
should get fired (or sued). Of course, for Ariane 4 it wasn't even a
system design error.

I remember a Kalman-filter-based target motion analysis for passive
sonar (which only gives you bearings, of course). At one point, there
was a value named Range_Squared. The programmer used a natural float
(ie, not allowed to go negative) and, when tests revealed to him that it
sometimes did go negative, he decided to limit the value to >= 0.0.

Unfortunately the underlying quantity was actually complex at this
point, and the result of this well-intentioned change was that the
algorithm could become very very unstable. The mathematician responsible
was not pleased.

Reverting to the Report, the last paragraph on page 6 says "This means
that critical software - in the sense that failure of the software puts
the mission at risk - must be identified at a very detailed level, that
exceptional behaviour must be confined, and that a reasonable back-up
policy must take software failures into account."

It seems obvious to me that you cannot take software failures into
account by having two identical systems. You might get away with it for
some tight race conditions, but for processing input data I just don't
see it. You really need diversity.



      parent reply	other threads:[~2011-03-17 20:58 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-14 15:49 How would Ariane 5 have behaved if overflow checking were not turned off? Elias Salomão Helou Neto
2011-03-14 16:17 ` KK6GM
2011-03-14 19:25   ` Yannick Duchêne (Hibou57)
2011-03-14 19:28     ` Vinzent Hoefler
2011-03-14 20:28     ` KK6GM
2011-03-15  4:02       ` Yannick Duchêne (Hibou57)
2011-03-15  4:53         ` Shark8
2011-03-14 18:29 ` Vinzent Hoefler
2011-03-16 10:41   ` How would Ariane 5 have behaved if overflow checking were notturned off? robin
2011-03-16 15:16     ` Simon Wright
2011-03-17 11:48       ` robin
2011-03-16 16:58     ` Martin Krischik
2011-03-16 23:39       ` How would Ariane 5 have behaved if overflow checking werenotturned off? robin
2011-03-17 18:48         ` Vinzent Hoefler
2011-03-18 12:06         ` Alex R. Mosteo
2011-03-18 21:15           ` How would Ariane 5 have behaved if overflow checking were not turned off? robin
2011-03-20 10:42             ` Vinzent Hoefler
2011-03-20 17:06         ` How would Ariane 5 have behaved if overflow checking werenotturned off? Martin Krischik
2011-03-20 17:11         ` Martin Krischik
2011-03-20 18:10           ` Dmitry A. Kazakov
2011-03-21 13:24         ` Leif Roar Moldskred
2011-03-20 13:07       ` How would Ariane 5 have behaved if overflow checking were notturned off? Florian Weimer
2011-03-20 17:00         ` Martin Krischik
2011-03-20 20:17           ` Florian Weimer
2011-03-20 20:37             ` Vinzent Hoefler
2011-03-20 20:14         ` Vinzent Hoefler
2011-03-16 18:20     ` Vinzent Hoefler
2011-03-16 18:29       ` Hyman Rosen
2011-03-16 18:55         ` Vinzent Hoefler
2011-03-16 19:40         ` KK6GM
2011-03-16 20:52           ` Hyman Rosen
2011-03-16 21:02             ` KK6GM
2011-03-16 21:09             ` Shark8
2011-03-16 21:13               ` Hyman Rosen
2011-03-16 21:35                 ` Shark8
2011-03-16 22:27             ` Vinzent Hoefler
2011-03-16 21:04           ` Shark8
2011-03-16 21:10             ` Hyman Rosen
2011-03-16 21:27               ` KK6GM
2011-03-16 21:31               ` Shark8
2011-03-16 22:32               ` Vinzent Hoefler
2011-03-18 21:14           ` How would Ariane 5 have behaved if overflow checking were not turned off? robin
2011-03-16 23:46       ` How would Ariane 5 have behaved if overflow checking werenotturned off? robin
2011-03-17  0:26         ` Simon Wright
2011-03-17 11:01           ` Georg Bauhaus
2011-03-17 11:04           ` robin
2011-03-17 13:36             ` Niklas Holsti
2011-03-18 21:13               ` How would Ariane 5 have behaved if overflow checking were not turned off? robin
2011-03-19 10:12                 ` Niklas Holsti
2011-03-17 22:51         ` How would Ariane 5 have behaved if overflow checking werenotturned off? Vinzent Hoefler
2011-03-18 21:13           ` How would Ariane 5 have behaved if overflow checking were not turned off? robin
2011-03-20 10:42             ` Vinzent Hoefler
2011-03-15  6:28 ` Stephen Leake
2011-03-15 17:32   ` Keith Thompson
2011-03-15 17:40     ` KK6GM
2011-03-15 19:44     ` Robert A Duff
2011-03-15 19:12   ` Florian Weimer
2011-03-15 19:45     ` KK6GM
2011-03-15 19:57     ` Vinzent Hoefler
2011-03-20 13:00       ` Florian Weimer
2011-03-20 20:13         ` Vinzent Hoefler
2011-03-15 19:42   ` John B. Matthews
2011-03-17 11:44   ` robin
2011-03-17 18:37     ` Vinzent Hoefler
2011-03-17 23:04       ` How would Ariane 5 have behaved if overflow checking were notturned off? robin
2011-03-18 15:55         ` Vinzent Hoefler
2011-03-17 21:37     ` How would Ariane 5 have behaved if overflow checking were not turned off? Vinzent Hoefler
2011-03-16 10:33 ` robin
2011-03-16 15:08   ` Simon Wright
2011-03-17 12:39     ` robin
2011-03-17 13:41       ` Georg Bauhaus
2011-03-17 23:34         ` How would Ariane 5 have behaved if overflow checking were notturned off? robin
2011-03-18 12:57           ` Hyman Rosen
2011-03-18 16:49             ` KK6GM
2011-03-18 17:18               ` Dmitry A. Kazakov
2011-03-19 17:55                 ` Keith Thompson
2011-03-20 18:39                   ` Robert A Duff
2011-03-17 18:43       ` How would Ariane 5 have behaved if overflow checking were not turned off? Vinzent Hoefler
2011-03-17 20:58       ` Simon Wright [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox