34 Comments
- michaelpinto, on 10/16/2009, -2/+24What upsets me about the article is that this isn't theoretical — this upset me to read: "The most notorious medical bug was a “race condition” in the software powering the Therac-25 medical accelerator in the 1980s, which resulted in three patients dying from radiation overdoses from 1985 to 1987." And these are obvious cases where the patent is dead, how many other times are we overexposed to radiation which adds up over time? Yet I never anyone tracking the cumulative numbers of exposures that any patient receives over a lifetime. It makes you wonder how many people get cancer as a result?
- replaysMike, on 10/17/2009, -0/+20LOLZ - Isn't the purpose of a stop button meant to prevent errors - why is it tied to the software at all?
I'm gonna put a big red power down button in Windows in case it ever stops responding. - gaymathman, on 10/16/2009, -0/+16One isn't typically exposed to radiation in a year equaling that which people get in seconds of chemotherapy. That example was when massive amounts of radiation in excess of those that would be used to kill tumor cells was directed toward a patient, with fatal consequences.
- Mawds, on 10/17/2009, -1/+14Blue Screen of Brain Death
- gaymathman, on 10/16/2009, -2/+15Just to be clear, this bug caused a patient to be exposed to incorrectly distributed nuclear particles in concentrations designed to kill a tumor. The event did not seem to hurt the patient (not that it gets much worse than brain cancer) , but still showcases the problems with relying on extremely complex medical systems; every extra component needed for basic operations is one more thing that can fail.
- blankman, on 10/17/2009, -0/+10You'd think they'd perform some insane long term testing before actually using this software in life and death situations.
- TAGline, on 10/17/2009, -0/+10Technical note: Chemo is not radioactive, just toxic (its essentially "poisoning you so badly the cancer dies, yet not badly enough to theoretically prevent your recovery). Radiation therapy is something entirely different (radiation is (technically physically toxic but) not toxic in the traditional sense).
The difference in most cases is rather trivial, but it serves to highlight in this case that cancer victims are always faced with a "two edged scalpel" with only the current techniques. - inactive, on 10/17/2009, -2/+9However, one must remember the number of lives that are saved by such advanced medical equipment when considering the few that are jeopardized by the occasional component failure.
- TheMAZZTer, on 10/17/2009, -1/+8Race conditions are difficult to debug because the very act of debugging can change timings enough that the problem will no longer occur. Not to mention that the race condition may happen regularly otherwise, or very rarely and randomly.
If you haven't done multithreading before, then be sure to learn how to do it properly before tackling a serious project or you'll be in for a headache sooner or later. - zer0mass, on 10/17/2009, -1/+7The best solution with machines that could be involved in a life or death situation that need a kill switch is to make sure the emergency shut off is on a low tech system working separately from the main system. Its only job should be to make sure when that button is pressed the correct sequence of events occurs. Even better, make that system redundant. It should be assumed that if the emergency shut off is required then something is wrong with the machine and no other functional parts should be trusted to still be working correctly.
- gerbil20, on 10/17/2009, -0/+4Ugh... does not sound right. I build computer-controlled machinery for a living, and I'll be damned if it is possible to get a minimal safety certification without software-independent estop interlock. And my machinery is used in the food processing industry, where certification requirements are to orders of magnitude more relaxed than for medical applications. If they don't use an independent estop line wired directly to the PLC controlling the whole deal, their head of engineering needs to ask for a refund from his alma mater. And apply for a position of a security guard.
- blahbbs, on 10/17/2009, -1/+5Whoa. My father just finished his fifth and final treatment for a brain tumor last week inside one of these machines. Scary. To be fair, I think his procedures were performed with a "Robo Knife", which I think is different from the Gamma Knife, but it is similar in purpose.
- majordanger, on 10/17/2009, -0/+4Unforgivable screwup In what should have been a fault tolerant design. Ever since THREE MILE ISLAND, software in Nuke plant controllers is forbidden.. All the controls loops are executed in simple state machines programmed into Programmable Gate Arrays. The logic systems are robust and simple and are thoroughly tested.
Too HOT ? OPEN VALVE.....K.I.S.S.
And I agree with replaysMike that Emergency Button should have gone to big dumb lock out relays that would shut off the Gamma source and retract the couch.. Even traffic light controllers have big dumb lock out relays that will shut it down if the controller software manages to produces a DOUBLE GREEN LIGHT.. - DiggMyDong, on 10/17/2009, -0/+3Reading the story bugged me quite a bit as well..
- secrity, on 10/17/2009, -1/+4The FDA regulations say that they are supposed to; the FDA does not have the funding to hire enough inspectors to ensure that this is done.
This is one more example of how an unregulated free market ensures that products are safe. - bfish510, on 10/22/2009, -1/+3I'm sorry but wasn't the Therac-25 a main example of why debugging code is so important? I'm a second year Comp Science student and i know enough to debug a program to make sure an array can be shifted properly yet the men and women behind a potentially lethal machine I guess see their debug console as a patient. Oh but debug consoles allow you to stop a program completely.........
- mbelleghem, on 10/17/2009, -0/+2Beat me to it. Instructive example, that Therac-25.
- mike23w, on 10/17/2009, -1/+3No profit doing it like that.
- zer0mass, on 10/17/2009, -1/+3You'd think any way.
- OnAsideNote, on 10/17/2009, -1/+2EPO and EMO should be hard wired and the very first thing the power goes to
This shouldn't even be an issue. - HappyScrappy, on 10/17/2009, -1/+2The Therac-25 bug was a race condition? My understanding was that it just a bug where if you enter one value, then backspaced to erase it and entered another, it used the first value instead of the corrected one.
How is this a race condition? - JohnnySoftware, on 10/20/2009, -0/+1FTA: "The most notorious medical bug was a “race condition” in the software powering the Therac-25 medical accelerator in the 1980s, which resulted in three patients dying from radiation overdoses from 1985 to 1987."
At the time, a totally different explanation was published for the Therac-25 radiation therapy machine.
The explanation given back then was that form was displayed on a terminal screen letting users go back and change values in fields but that the software in the computer counted ALL the characters entered without excluding ones that the user edited out. - urik88, on 10/17/2009, -0/+1We had to study race conditions for my OS class.
That thing is very very hard to debug. Making A B instead of B A could make the whole system fail, but only after thousands of tries, depending on how lucky you are. It may actually never fail at all, or it could fail after the first time. - TheMAZZTer, on 10/17/2009, -1/+2That's easy. It's not.
Well I suppose it could be if a value in memory (or a hardware register) was being written with the old value right after the new one for some reason. - iheartbakon, on 10/17/2009, -0/+1Ummmmm, pull the plug?
- Nighthawke, on 10/18/2009, -0/+1With a poorly positioned patient in the mouth of the Dragon, and at the mercy of buggy software that both parties knew about, but did nothing to resolve it..
What, The *****, People!
A "known software condition". Oh, this will go over well with the Feds.
The QA director needs to enact some better testing parameters. It would be obvious that any out of position errors would be taken as a SCRAM condition and the shutters sealed and locked until the problem is resolved. I'd put some explosive cutters in the drive system, shearing off the gears after the shutter seals, preventing the machine from functioning until the issue resolved and the shutter repaired.
Happy Valentines Day! - ptoomey, on 10/17/2009, -0/+1Even CNC machines which could at worst cut your finger off have manual kill switches which kill the machine at the electrical level completely outside of software control. The software maintains a charge pump in the hardware, if the software hangs and doesn't keep activating the charge pump, the system is disabled. Hitting the big red button (e-stop) electrically disconnects the machine's motor drivers, spindles, etc. It doesn't matter what the software or controller is doing, you hit the e-stop and it's dead instantly.
- TrendyTim, on 10/18/2009, -0/+1Why the hell is the emergency stop button software based, id think an emrgency stop button would be fail safe, and directly connect to motors that close the sheilds and shut off power to appropriate systems.
- isunktheship, on 10/17/2009, -0/+1Yeah was about to say Chemotherapy != Radiation Therapy
- EvilNecro, on 10/17/2009, -0/+0It was actually a problem with input. A skilled technician could input all the values and move to the next screen before they were all captured. It's a threading issue, but not a really a race condition. Oh, and all the software was written by one guy! We had to study it quite a bit back in college.
- Sil369, on 10/17/2009, -2/+1Skynet is taking over?
- datdamonfoo, on 10/17/2009, -3/+1Must have been running Snow Leopard.
- linagee, on 10/17/2009, -7/+3Did you ask for the software version number before the procedure was performed? LOL.
- ivanmarsh, on 10/17/2009, -6/+1I'm assuming this is a Microsoft based system. Divide by zero = USS Yorktown is dead in the water.



What is Digg?