Durch fehlerhafte Software in der Firmware von Toyota ist mindestens eine Person gestorben:
Ich habe zwar nicht den 800-Seiten Bericht gelesen (falls der überhaupt öffentlich zugänglich ist), aber der Titel des Artikels ist etwas missverständlich, da ich es für unwahrscheinlich halte, daß der Unfall durch einen Bit-Flip zustande kam, sondern eher weil in der Software tatsächlich Stack Overflow und Race-Condition Fehler waren.
Wie kann man Stack Overflow Fehler bei so kritische Software übersehen? In jeder besseren IDE, z.B. die CodeWarrior Reihe, bekommt man eine automatisch generierte Analyse des Call-Trees angezeigt, mit Ausnutzung des Stacks (kann der GCC glaube ich auch mit Zusatzprogrammen, die die Intermediate-XML-Dateien auswerten). Auch wenn da viele Threads parallel liefen, war deren Anzahl endlich und wahrscheinlich auch nur einmal beim Programmstart gestartet, sodaß man jeden Thread einfach addieren könnte.
Race-Conditions sind natürlich schwieriger zu finden, aber durch sorgfältige Programmierung und Analyse der Locks auch vermeidbar.
Eine andere Frage: wie kann man ein Programm gegen Bit-Flips absichern? Man müsste ja alle möglichen Auswirkungen von Bit-Flips (auch im Flash) untersuchen. Und was macht man, wenn man ein Bit-Flip detektiert? Auf der Autobahn eine Vollbremsung einleiten wäre wohl nicht so gut.