Slashdot Mirror


Can Software Kill?

mykepredko writes "Eweek has an interesting, if somewhat long article titled Can Software Kill? The article focuses on a programming error that resulted in 28 Panamanian cancer patients receiving many times an expected lethal dose of radiation. The article briefly mentions, but doesn't go into detail, the 1991 Patriot Missile Failure that resulted in the deaths of 28 American service men and women."

21 of 562 comments (clear)

  1. Therac-25 by addaon · · Score: 4, Informative

    Anyone who hasn't read this paper, should.

    --

    I've had this sig for three days.
  2. Re:Sure it can kill. by Anonymous Coward · · Score: 2, Informative

    I know that you're joking, but there's this little thing called "terminal velocity" that puts a crimp in your little example.

  3. Set Phasers on Stun by jhines0042 · · Score: 4, Informative

    A good book that tells how technology can cause death, destruction, and mayhem entitled "Set Phasers on Stun". Includes the Therac radiation machine accidents, nuclear accidents, and many other odd stories.

    --
    42 - So long and thanks for all the fish.
  4. RISKS Digest... by Dr.+Zowie · · Score: 4, Informative
    ... is a forum that talks about specifically this kind of stuff. Being moderated the old-fashioned way, with a benevolently autocratic editor, it has much higher quality posts than the /. average.


    There was a good discussion of this event some months ago; the current issue has blurbs on topics ranging from computer viruses to aircraft cockpit management.

  5. Yes. It can. by Mr.+Slippery · · Score: 5, Informative

    Sadly, this is nothing new.

    Every software developer needs to read Peter Neuman's book Computer-Related Risks , and keep up with the Risks digest (comp.risks).

    Learning from other's mistakes is much less painful.

    --
    Tom Swiss | the infamous tms | my blog
    You cannot wash away blood with blood
  6. Re:Patriot missile -- really a "failure" by irokitt · · Score: 4, Informative

    The problem was actually one of training and clueless operators. IIRC. the coordinates of the missile launcher had to be updated several times a day. The technicians went several days without doing so. A Scud flew into the area the Patriot was supposed to be protecting, but the system was so confused as to where it was that it thought it was another batteries' responsibility and did nothing. The Scud crashed into an area with Coalition troops and killed 28, the largest death toll due to a single action in Desert Storm.

    --
    If my answers frighten you, stop asking scary questions.
  7. issue already discussed in old article by bad-badtz-maru · · Score: 2, Informative

    These issues were already mentioned a year ago in the slashdot article Debug your Code, or Else!.

  8. Re:Software that kills... by Theodore+Logan · · Score: 4, Informative

    And 64 bit integers converted to 16 bit integers kill, if not people, at least big budgets.

    --

    "If you think education is expensive, try ignorance" - Derek Bok

  9. Re:Sure it can kill. by robslimo · · Score: 5, Informative

    Ha, ha.

    It's a serious topic, even more so since the over-radiation shit in Panama happened so recently.

    The infamous Therac-25 incidents happened between 1985 and 1987 and should be required reading... too bad the three Panamanian medical physicists cited in the article hadn't paid attention to it.

  10. Further Reading by cb8100 · · Score: 2, Informative

    Case Studies in Information and Comuter Ethics (ISBN: 0-13-533845-X) was required readings for computer ethics course I took.

    The book mainly focuses on privacy and computer crimes, but it has a section entitled "Liability, Safety, and Reliability" in which four case studies of dangerous and unreliable software are detailed.

    --
    My lack of God, it's Trotsky!
  11. Re:EULA's by C10H14N2 · · Score: 2, Informative

    No. By law, the everything-and-the-kitchen-sink EULAs cannot be applied to any application that has to do with medical devices, air traffic control, military weaponry etc. Don't think that just because your word processor has a liability release that the same is true for all types of software.

    That said, the software development standards that are required under the FDA essentially enforce standard software lifecycle practices that people should be adhering to anyway, with the exception that the accountability for signing off on a product release is a matter of law, not just good practices.

  12. Re:Patriot missile -- really a "failure" by MoosePirate · · Score: 2, Informative

    The problem was actually a programming problem. They used a floating point number for the time counter. Floating point gets less and less accurate as you get farther from 0. So after the missle had been on for a few days, the patriot missles time count would be off, since they were adding .1 ticks to a floating point number. It could have been avoided by using an integer to track the time. The workaround to this problem was to reboot the missle more often, but this wasn't found out until after the incident, when they figured out the problem. So a lesson to all programmers. Floating point is exponentially less accurate as you get farther from 0. At the very top, its only accurate to 1.

  13. Re:You clueless cretin. by canajin56 · · Score: 5, Informative

    The Davis-Besse nuclear reactor in Ohio was running its safty monitoring systems on an NT server. And it got infected by Slammer and crashed. Fortunatly, the system had an analog backup, and the reactor had already been offline all year, after inspectors discovered a 6" hole through the cement in the reactor head, which left the core exposed.

    --
    ASCII stupid question, get a stupid ANSI
  14. Not really by activesynapsis · · Score: 2, Informative
    Being a machine control developer, I take it upon myself to do extensive testing of my software before deploying it. (In fact, the code I just finished was partly a safety routine to make sure 10 ten-kilowatt power supplies can't turn on and kill somebody.) If you're coding an open-loop system (one without feedback from the equipment), you can only guess what's going on outside the computer and have to make sure you do what you can to keep things safe. If you're controlling a bathtub water valve for a baby bath and it's an open loop system... how do you know if the water temperature is safe for the baby? Who's fault is it if there's a burn? The designer? The operator?

    On the other hand, if you're working with a closed loop system (outputs to equipment and feedbacks to read the state of the equipment), you have a lot more responsibility as a programmer. You should be able to check for most equipment failures (if the feedbacks work correctly) and disable the outputs in the case of a problem. The radiation machine in Panama should have feedbacks to control the output, and those feedbacks could be checked against a "lethal dose" value. If they're not, it's the programmers (and/or designers) fault IMHO. But if the people operating the equipment change the software (disable a sensor...etc) then it's all in their hands. Any modifications outside the original design should release the programmer against any liability because you can't predict changes not made by you.

  15. Re:Sure it can kill. by nacturation · · Score: 2, Informative

    I'm looking to post my comments after I die, posthumously.

    --
    Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
  16. Modern Verification by krysith · · Score: 2, Informative

    In modern systems, where IMRT (intensity modulated radiation therapy) is used, the medical physicist in charge is supposed to verify each field delivered. This tests both the treatment planning software, as well as the accelerator, collimator leaves, etc. Often this is done using film, however, time saving electronic devices (basically diode arrays) are used by those who can afford them. Of course, the verification system has its own software, which requires verification also. Luckily the verification software is fairly simple, relative to the treatment planning and accelerator control systems.

  17. Software does kill by DroidBiker · · Score: 3, Informative
    Software has killed many people. Radiation machines under software control have killed people in the US, and Canada as well as the incident the article mentions in Panama.

    A software glitch caused the crash of the first F-22 prototype (noone died fortunately) and as someone else pointed out, the Patriot missile failure in the first Gulf War (Software wasn't ENTIRELY to blame there. The bug was known and the folks in the field were given instructions on how to avoid it, but didn't follow them)

    The trick is who do you hold responsible? The software person who has no training in mission critical software and who's working 80 hour weeks to meet the deadline the idiot managers are shoving down vis throat?

    After 10 years in the industry I'm FINALLY starting to see movement towards software creation as a serious engineering discipline. Schools are starting to offer programs in Software Engineering, the ACM and IEEE have agreed on an official code of conduct (tho IHMO it still has SERIOUS problems), and most importantly companies are starting to listen to their technial folks when they say "You can't do that!".

    Liability is just another incentive to head down that road. We need to be sure we pin the liability on the right folks.

  18. Re:EULA's by hchaos · · Score: 2, Informative
    Just what is a company supposed to do when designing computerized medical equipment? Hire a team of engineers to create everything from the operating system to the GUI front-end? And people wonder why medical insurance costs so much...
    When people's lives are at stake, I do expect the designers to take well-known failure modes, such as the Blue Screen, into consideration, in much the same way that I expect everyone else who designs systems that have high potential for catastrophic failure to. If I design an air traffic control system, and I don't build the OS myself, and use XP instead, then I can't really blame Microsoft when it goes down, because everybody and their grandmother could have told me that Windows isn't reliable enough for this application.
  19. Re:You clueless cretin. by Inebrius · · Score: 2, Informative

    The parent post has incorrect information in it.

    "...after inspectors discovered a 6" hole through the cement in the reactor head, which left the core exposed."

    Davis-Besse had some pretty severe corrosion on its reactor head, which ate through some of the Alloy 600 (carbon steel) metal. Beneath the approximately 6" of carbon steel, there is a stainless steel shell. This shell was not eaten through by the boric acid, as it is normally exposed to boric acid by design. Part of the stainless shell was exposed when the corrosive boric acid and other wastage was removed.

    The core was not exposed. And the reactor head is NOT made of cement.

  20. Of course it can by Qbans · · Score: 2, Informative

    I know that someone mentioned it already but there was a good paper published on it, it's a good read. There was a similar incident a few years ago with the Therac-25 machine. Supposedly the manufacturer installed a computer and removed hard wired safetys out of the system, running everything by software. They also forgot to put in some interlocks and other good stuff, the net result being that several people died. Or it seems that there is a book here although I have not read it myself.
    A lot of people forget that software can have devastating affects on things and even with the best of programming you can't beat a hardware safety for the "just in case."

  21. Re:Legal Precedent - Personal Responsibility by germansausage · · Score: 2, Informative

    I write software for automated train switches. If a bug in my software caused an accident, I would most certainly be responsible.

    Railway traffic control software is very formally and rigorously tested. The only way I would not be responsible is if the tester neglected to perform a test that would have discovered the bug.