Und man heute davon ausgeht, dass es auch eine stärkere oder
eine höhere Dosis war als bei Tschernobyl damals.
Und das finde ich halt völlig. Krass, das ist auch echt heftig,
ja. Coding Buddies Dein Podcast rund
um Softwareentwicklung und aktueller Tech News.
Herzlich Willkommen. Willkommen.
Halli Hallo und schön, dass du wieder eingeschaltet hast.
Herzlich Willkommen zur neuen Folge des Cody Bodys Podcast.
Deine Gastgeber und wie soll es auch anders sein, meine
Wenigkeit, der Tino und mir gegenübersitzend natürlich auch
heute wieder dabei, der fantastische Fabi Fabi Moin
Moin, grüß dich und was geht ab. Moin Moin und herzlich
Willkommen an alle ich. Ich denke mir jedes mal so,
stell dir aber vor. Du sagst irgendwie, du
versprichst dich und nennst auf einmal n anderen Namen so.
Und dann meldet sich irgendjemand aus dem Off so
genau, das wär geil. Ich weiß nicht warum, aber
irgendwie muss ich da immer dran denken, ja, aber ich glaube es
ist mir noch nicht passiert, ich hab dich glaub ich immer sehr
sorgfältig angekündigt, sehr gut, ja, wie geht es dir?
Shit ja schon n bisschen besser. Ich hatte ja jetzt, ich glaub in
der letzten Folge hat man es auch so n bisschen gehört,
leicht n Schnupfen gehabt, so hab ich mir die 100.
Folge nicht vorgestellt, aber jetzt in der 100 dann war es
quasi durchgezogen. Genau muss, ja, muss ja, aber es
geht ja quasi jetzt in die nächste Runde.
Ne so, Staffel 2. Ist das so OK?
Das ist krass. Ja, sagt man, so sagt man nee,
aber auf. Jeden Fall geht es schon wieder
n bisschen besser. Das ist natürlich gut und ich
hoffe natürlich auch, dass Liebe Zürer lieber Zürer das auch.
Wohlauf und gesund bist und jetzt schön zuhören kannst bei
dieser Folge. Es gibt nämlich ne ganz
interessante Folge, nicht wahr, Tino?
Genau, denn viagrammen heute mal wieder ein älteres Format aus,
was leider so n bisschen untergegangen ist in letzter
Zeit, obwohl ich es persönlich sehr Feier und deswegen freue
ich mich sehr auf diese Folge und zwar ist es mal wieder eine
Big Fails Folge, das heißt wir gucken uns heute mal wieder
einen krassen Fall in der Softwareentwicklungsgeschichte
an. Welcher genau, möchte ich noch
nicht verraten, aber es wird auf jeden Fall spannend und auch
sehr dramatisch, denn wir haben uns heute einen Fall ausgesucht,
deren Konsequenzen sehr, sehr krass waren und das möchte ich
halt gerne mal beleuchten, weil das auch so ein bisschen, also
ich will nicht sagen so ein Mythos da drum ist, aber
irgendwie so richtig klar ist nicht, was da passiert ist, gibt
unterschiedliche Ansichten. Viele haben damals drüber
berichtet oder es ist auch heute noch n Paradebeispiel für Bugs
in der Softwareentwicklung und das würde ich halt gerne einfach
mit dir aufarbeiten und deswegen würde ich sagen, starten wir mal
rein von der Geschichte her und gehen mal zurück in das Jahr
1985. Genau da war es nämlich der
Juni. Und eine Frau, nämlich Katie
Yarboro ich hoffe, ich habe das richtig ausgesprochen.
Klang gut, ja. Die war auf dem Weg zu ihrer 12.
Krebstherapie. Das ist natürlich eine wichtige
Sache, wenn man denn leider an so einer Krankheit leidet, und
da war es dann so, dass sie, ich sag mal, mit einem neuen.
Gerät in Berührung kam das zwar schon, einige 1000 Menschen
sozusagen behandelt hat, also es geht um Strahlentherapie, und da
ist es halt so, dass du im Endeffekt ja Krebs sozusagen
bestrahlen kannst, ohne da irgendwie einen chirurgischen
Eingriff zu machen, um halt eben diese Krankheit dann zu heilen.
Und genau das war dann bei Katie Halt eben der Fall, war wie
gesagt die 12. Therapie schon, das heißt sie
hatte schon ein Paar hinter sich.
Und es sah auch gut aus und da sollte Katie dann wieder eine
Therapie bekommen und mit so einem Röntgenstrahl, ich nenn es
mal beschossen werden ne und da ist es so, dass ich glaube
früher gab es mal die Einheit Rat beziehungsweise Röntgen, das
ist jetzt mittlerweile ist die Einheit n bisschen anders, die
heißen Sievert glaube ich aber wir gehen mal von diesem Jahr
aus und nehmen trotzdem die Einheit Rat.
Die ist auch n bisschen krasser, weil die ist n bisschen höher
und da sollte Katie Halt eben mit so 200 Rad beschossen werden
sozusagen, und zwar im linken Brustbereich.
Ich glaub da ging es auch um Lymphknotenkrebs und im
Normalfall ist es so, dass bei so einer Behandlung der Patient
oder die Patientin gar nicht merkt, dass so ne Behandlung
stattfindet. Das ist eine schmerzlose
Behandlung. Genau, genau.
Also du merkst es eigentlich jedenfalls akut erstmal nicht.
Und da ist dann aber irgendwie was schief gegangen bei dieser
Behandlung. Das heißt, sie hat diese
Röntgenbestrahlung bekommen, hat aber ein sehr, sehr starkes
Brennen verspürt, also sozusagen wirklich irgendwas schief
gegangen, weil eigentlich dürfte man das gar nicht merken und hat
dann sozusagen dem Techniker da vor Ort im Krankenhaus eine
Georgia, wo das war, hatte sie dann vorgeworfen, dass er sie
verbrannt hätte. Und der Techniker meinte aber
dann, Oh tut mir leid, aber das geht eigentlich gar nicht ne
also der hat dann versichert ich weiß nicht was sie da empfunden
haben, aber dieses Gerät mit dem wir das hier machen kann ihnen
sowas nicht zufügen, kann ihnen nicht wehtun.
Sozusagen genau, denn es handelt sich ja um ein neues Gerät, was
komplett ausgereift und sicher ist.
Und deswegen konnte man sich das einfach nicht vorstellen, dass
es am Gerät lag und hat quasi. Das Ganze wieder umgedreht nach
dem Motto Ja Katie, Du übertreibst oder das, das kann
gar nicht sein, halt ne, deswegen lass uns mal über diese
neue Technik sprechen. Und zwar wurde 1976 der Telrac
25 durch die AECL entwickelt, das wird dargestellt ne genau
das ist Topic Canada Canada genau.
Jetzt fortan in dieser Folge AECL genannt, also noch mal
Atomic Energy of Canada Limited. So viel Ordnung muss sein, hast
du recht und genau, also im Prinzip hatte das komplett neue
Eigenschaften, es war ne Weiterentwicklung, es gab halt
schon glaube ich ein oder 2 Vorläufer, auf jeden Fall den
Terrak 20 vorher, der als äußerst sicher galt und keine
Probleme gemacht hatte und der die 25 hat halt darauf
aufgebaut. Genau also das funktionierte
dann halt mit Elektromagneten, um die Strahlung doppelt durch
das Ziel zuschicken, sage ich mal, es war ein ganzer fancy
Aufbau, sage ich mal. Ich bin jetzt kein Physiker, der
das genau erklären kann, aber es soll auch um die Software
dahinter gehen, was nämlich dabei wichtig war, weil ich ja
gerade meine, es soll um die Software gehen, das ganze war
halt wesentlich mehr Software driven das heißt man hat auf.
Hardwarekomponenten verzichtet und auch gerade so
Absicherungsmechanismen rein Softwaretechnisch gelöst.
Das war halt so diese große Weiterentwicklung, da dass so n
Boom war damals zu sagen ja OK, die Software ist sicher, wir
machen das alles über Software, das ist jetzt so der neue heiße
Scheiß, ja und? Da muss man aber dazu ja noch
sagen, dass zum Beispiel vorher gab es ja in dem Vorgängermodell
gab es ja Hardware. Die eben dafür gesorgt hat, dass
zum Beispiel ein nicht eine zu hohe Strahlung.
Genau, es waren halt quasi so Sicherheitsmechanismen rein
bauteiltechnisch oder Hardwaretechnisch umgesetzt und
das hat man jetzt Softwaretechnisch gelöst.
Mit dem neuen Modell. Das ist halt so die große
Änderung und da ist es halt so komplex geworden, dass man so
von ungefähr 100000 Zeilen Code ausging, wenn ich mich richtig
erinner, war das in. Pd 11 Assembly oder so heißt die
Sprache entwickelt, das heißt, es war jetzt nicht so eine
Hochsprache, wie man das heutzutage kennt, sondern halt
schon sehr spezifisch, sage ich mal, interessanterweise so, mal
als Side Note. Ich habe mal gegoogelt, ob das
immer noch im Einsatz ist und habe gelesen, dass auch in
Kernkraftwerken aktuell noch diese Sprache verwendet wird,
das fand ich halt irgendwie ziemlich interessant, zeigt aber
auch, welche Historie dahinter steckt.
Und wahrscheinlich auf welcher, auf welchem Level man da codet.
Wer macht denn sowas? Ich habe irgendwann mal im
Studium Assembler programmiert und ich fand es schrecklich.
Ja, das das muss man wollen, das muss man auf jeden Fall wollen,
kein. Wunder, warum es hier um
Software Bugs geht in der Folge. Was aber interessant war bei der
Entwicklung, dass die Hardware zwar geprüft wurde, also den den
Aufbau der Maschine, die Software dabei aber so ein
bisschen. Na ja, ich würde mal sagen,
untergegangen ist. Also man hat halt die Software
aus dem Terrac 20 übernommen, da sie ja da einwandfrei lief und
hat dann quasi um diese Neuerung erweitert.
Ja, also wir hatten ja gerade gesagt, man hat dann zum
Beispiel auf so Hardware Interlogs, also diese Facesafe
sein sollten verzichtet und das ganze im Terrac 25
softwareseitig umgesetzt. Und aus heutiger Erkenntnis ist
das im Prinzip durch so ne Art. Ich will es nicht böse
ausdrücken, aber ich nenn es mal Hobbycoder entstanden, das heißt
so n Mitarbeiter aus dem Unternehmen der gesagt hat ey
ich ja ich code ich hab Bock Software zu entwickeln, ich mach
das ne und das find ich halt irgendwie spannend.
Also man hätte ja jetzt irgendwie sich gedacht OK da ist
jetzt n Team von 1015 Leuten oder so dran scheinbar.
Ist das von einer aus heutiger Sicht unbekannten Person
entwickelt worden? Und das meine ich auch immer mit
diesem oder was ich anfangs meinte mit diesem Mystischen
dahinter, das ist halt alles irgendwie so was ging da ab.
Ne, ja ja genau, also das habe ich auch gelesen und das finde
ich auch krass. Ich meine der Typ wie gesagt wie
du schon meintest, der kam aus dem Unternehmen, hat aber
eigentlich sozusagen nur aus Spaß programmiert und dann wurde
er wahrscheinlich gefragt Ey, hast du Lust für den Terrak 20
die Software zu entwickeln und das hat er dann gemacht und.
Und die wurde dann übernommen. Ich find das halt immer sehr
interessant, weil man ich weiß nicht warum, aber irgendwie ist
es doch intuitiv. Keine gute Idee zu sagen, Ey,
lass mal Software von einem anderen Gerät benutzen und für
ein neues einfach so wiederverwenden.
Gut, die haben noch ein bisschen was drumherum gebaut, aber
irgendwie denke ich mir immer so hm weiß ich nicht und dazu kommt
ja auch noch, dass halt auch zum Beispiel während der Entwicklung
und so auch keine Regressionstests gelaufen sind
und so weiter also die Software war quasi ungetestet, also keine
automatisierten Tests und sie wurde halt auch nicht.
Durch ne Sicherheitsprüfung geschickt.
Wie du schon meintest, nur die Hardware wurde
Sicherheitsgeprüft und da war ja auch alles in Ordnung und nach
so einer erfolgreichen Sicherheitsprüfung wurde der
Terrak 25 dann stolz verkauft an die Krankenhäuser und dann ging
es los. Ne als super neues gerät ne was
alles mögliche jetzt kann und besser macht, das finde ich halt
auch spannend. Also die Software an sich wurde
halt nicht auf Herz und Nieren geprüft, sondern.
Man hat halt quasi am Ende das fertige Gerät und hat es
getestet als Sicherheitsüberprüfung.
So mal in Anführungsstrichen und hat gesagt gut das Ding
funktioniert, es macht was es soll, das wird richtig geil und
jetzt ist, da können wir da das Marketing Anschmeißen und das
Ding an alle Krankenhäuser verkaufen finde ich halt auch
spannend. Ich mein klar es hat
funktioniert. Aber irgendwie hätte man doch zu
dem Zeitpunkt sich denken müssen.
Ja, ist ganz schön sicherheitskritisch hier das
Ding, vielleicht hätten wir da mal n bisschen genauer sein
sollen, aber es lief ja alles gut, das Ding funktionierte, es
hat sich super verkauft. Es ist ja auch eigentlich zu bei
sehr, sehr wenigen Fällen zu Problemen gekommen.
Nur ich denke mir halt auch wieder so, hier wird mit
Röntgenstrahlen gearbeitet, ne, also wirklich mit einer
Bestrahlung die echt. Auch wirklich
gesundheitsschädlich sein kann. Und da denke ich mir so, ich
weiß nicht, ich meine, man versteht ja, dass zum Beispiel
Hardware weggelassen wurde, um Kosten zu sparen, man nimmt dann
zum Beispiel möglichst noch die alte Software und dann hast du
eigentlich vielleicht weniger kosten, alles ein bisschen
günstiger, alle finden es cool bis halt eben dann zum Beispiel
katies Fall aufgetreten ist. Ne.
Genau, obwohl man da ja gesagt hat, okay, das kann ja einfach
nicht sein. Also das war so ein Fall.
Dachte man sich so. Nee, da, das muss irgendwie
andere Gründe haben, das kann nicht am Terrak 25 gelegen
haben, der Techniker hat das ja auch quasi direkt von sich
gewiesen, dass da das kann einfach nicht sein, um ne, also
quasi um so ne Verbrennung zu erzeugen, brauchst du so eine
hohe Bestrahlung, das geht mit dem Gerät sozusagen nicht.
Ne, das war ja so die offizielle Aussage nur und da würde ich
jetzt gern mal mit dir drauf eingehen, gab es ja dann diese
ersten Anzeichen, dass was nicht stimmt.
Immer in Bezug auf die Behandlung mit dem Terrak 25.
Und die haben sich immer mehr gehäuft.
Lass uns doch da noch mal ein paar Fälle.
Raussuchen auf jeden Fall. Also ich wollte noch mal ganz
kurz noch mal auf katies Fall zurückgehen, weil nämlich sie
zum Beispiel, also sie hatte sich ja beklagt, wie du meintest
und ist dann auch 2 Wochen später nach der Behandlung hatte
sie dann. Relativ große rote Flecken, ne,
also quasi vorne auf der linken Brust und hinten dann auch ne
und? Auf dem Rücken sogar ne.
Genau also wie wirklich so n so n so n Laser Beam, der so durch
einen Durchgeschossen hat und da hat dann im Endeffekt auch so n
medizinischer Physiker, der dann auch dort vor Ort war, hat sich
das auch angeguckt und meinte Halt eben auch OK 200 Rad können
das eigentlich nicht an. Richten eigentlich ne und später
hat haben auch n paar Berechnungen dann ergeben, dass
es ungefähr eher 20000 Rad gewesen sein müssen, also die
hundertfache Dosis und das ist halt schon richtig krass, weil
das ist ne Strahlen n Strahlenbeschuss, der ist nicht
mehr lustig und das blöde war aber, dass der Physiker, der
sich das auch angeguckt hatte, dieser medizinische Physiker,
der hat. Das leider nicht reproduzieren
können, hat den Vorfall aber an die IAECL, also an das an den
Hersteller auf jeden Fall gemeldet.
Und die haben aber erstmal auch gesagt, so nee, kann ja nicht
sein, also wir haben das Ding ja geprüft, alles gut, das ist mit
dem Terrac 25 unmöglich, nur das bescheuerte war nämlich, dass
man kann sich ja hinstellen und sagen, das war alles so nicht,
aber nichtsdestotrotz musste dann bei Katie ihre krebsfreie
Brust. Die linke halt trotzdem komplett
entfernt werden. Also die Behandlung war erstmal
bis dahin gut, dann kam dieser Vorfall und hier musste die
komplette Brust abgenommen werden, plus noch, dass ihr
linker Arm seitdem halt komplett gelähmt war und da denke ich
mir, wie krass das eigentlich ist, dass man sich trotzdem
hinstellt und sagt, kann nicht von uns kommen.
Ja, vor allem wenn du quasi. Die Auswirkung wirklich siehst
am Körper ne wie diese roten Flecken zum Beispiel und dann
halt auch wissenschaftlich, ich sag mal belegt wurde, dass die
Strahlung niemals so gering gewesen sein kann dafür, also da
musst du ja eigentlich nur 1 und 1 zusammenzählen, aber wieso?
Oft wurde das natürlich, denn wie du ja schon meintest, die
Anschuldigung zurückgewiesen von dem Unternehmen.
Ja wie gesagt, wir haben das geprüft, das Ding ist sicher,
das kann nicht sein, so jetzt haben wir aber folgenden Fall,
dass immer mehr Fälle aufgetreten sind.
Zum Beispiel könnten wir da mal über den Fall von Francis Hill
sprechen. Sagen wir mal, Francis Hill
kommt in diesen Behandlungsraum rein, legt sich dann sozusagen
auf so n Tisch ne und dann hast du so n riesen gerät was so über
dich drüber fährt. Das wird dann richtig
positioniert, es wird dann eingestellt mit den
entsprechenden Parametern was da sozusagen passieren soll, wie
zum Beispiel auch wieviel Rad dann im Endeffekt bestrahlt
werden soll und so weiter und sofort ne ich glaub da gab es
sogar die Möglichkeit 2 verschiedene.
Beams zu nutzen, also einmal wirklich röntgen und einmal
Elektronenstrahlen nennt sich das Ganze.
Elektronenstrahl ist zum Beispiel n bisschen geringer und
für die obere Schicht sozusagen gedacht und Röntgenstrahlen dann
halt n bisschen für tiefere Schichten auch im Körper drin
und dann kann man sich das so vorstellen, dass der der Patient
oder die Patientin, wie zum Beispiel im Fall von Francis
Hill, sie geht da rein, legt sich hin, der Techniker oder die
Technikerin geht raus und stellt dann im Normalfall alles ein.
So von außen und startet dann die Behandlung und gleichzeitig
hat sie die Möglichkeit oder er, also der Techniker und die
Technikerin von außen das Ganze über eine Kamera zu beobachten
und sie hört auch was da drin passiert.
Im Normalfall so damit man sich einmal vorstellen kann wieso was
ungefähr abläuft. So und dann kam halt wie gesagt
Francis Hill genau das gleiche und sie hatte glaube ich
Gebärmutterhalskrebs und hatte halt eben auch wieder eine
Behandlung. Genau wurde dann halt auch mit
dem Terrak 25 behandelt, der weiterhin als sicher galt und
erfolgreich eingesetzt wurde, verspürte dann aber in der
Behandlung Elektroschocks an der Hüfte und man ging dann im
Nachhinein davon aus, dass sie halt mit einer Dosis von 17000
Rad beschossen wurde, statt wieder im hunderter Bereich, was
wahrscheinlich angesetzt war. Und das ist halt.
Schon ziemlich krass, ne. Also da hat sie dann halt.
Im Prinzip hat man dann auch festgestellt, dass die Hüfte
vollständig zerstört, weil die hätte so gesehen komplett
ersetzt werden müssen und das finde ich halt auch richtig
krass. Also das Ganze hat man halt auch
erst in ihrer Autopsie festgestellt, also die Frau ist
auch Friends, es ist ne Frau, ja kann ja auch männername sein,
dass ich nur kurz gegenchecken. Das hat man leider erst in der
Autopsie festgestellt, weil sie daran auch verstorben ist und
die AECL also wieder das Unternehmen hinter dem Terrac
25, hat das natürlich untersucht, weil das ist jetzt n
Fall, das kannst du nicht unter den Tisch kehren.
Ja und man hat dann im Prinzip das Ganze zurückgeführt auf
einen defekten Mikroschalter, den man gefunden hatte, was im
Prinzip. Wie du ja meintest, das ganze
Gerät wird positioniert, da gibt es so ne Art Drehteller, der
dann im Prinzip die richtige Konfiguration einstellt um halt
zum Beispiel die Bestrahlung auch abzumildern.
Ne und? Man hat halt denn das darauf
zurückgeführt, dass dieser Mikroschalter defekt war, es
nicht richtig eingestellt wurde, aber grundsätzlich es nicht am
Gerät lag, sondern dass es so gesehen ein ein technisches
Hardwareproblem war. Also n defekt.
Ja. Aber vielleicht, also ich kann
mir vorstellen, dass der Defekt auch sozusagen hardwaretechnisch
zusammengespielt hat mit der Software am Ende aber sei mal
hingestellt, auf jeden Fall haben die genau die ausgetauscht
und der Dreh, dieser Drehteller den du meintest ne um das noch
mal kurz n bisschen genauer zu erklären, du kannst, du hast ja
diese 2 verschiedenen Beam Arten einmal elektronisch strahlen und
einmal x Ray und für die verschiedenen Strahlungsarten
konnte man verschiedene Filter einstellen mit diesem
Drehteller. So Weise musste man genau,
sollte man, weil im Endeffekt, wenn du zum Beispiel diesen
Filter für die für den Elektronenstrahl hattest, der
war ja deutlich geringer, demzufolge ist da halt auch mehr
durchgekommen und wurde weniger sozusagen gefiltert.
Und wenn du jetzt aber beispielsweise den Röntgenstrahl
Anmachst, aber gleichzeitig den Elektronenfilter nutzt, dann
hast du natürlich eine viel viel zu starke Dosis für das, was du
eigentlich haben möchtest. Nur mal als Beispiel genau.
Genau, und das ist nämlich der Punkt, das soll schiefgelaufen
sein und man hat dann diesen Mikroschalter quasi ausgetauscht
und auch ein Software Update ausgeliefert, was quasi diesen
Drehtisch oder diesen Drehteller besser überwacht.
Da hat man gesagt, OK, wir müssen sozusagen, wir patchen
das nach, damit das nicht noch mal passiert im Falle eines
defekten Mikroschalters. Ich glaub sogar, dass das AECL
dann meinte, dass sich quasi um nen Faktor von 5 oder so die
Sicherheit von dem Terrac sogar noch mal erhöht hat.
Ja, danach war super sicher. Genau.
Also vorher war sicher, danach war super, super sicher nur,
dass dann zum Beispiel, es gab halt auch so vereinzelte Fälle,
wo dann halt zum Beispiel einfach die Haut leicht vernarbt
war, also quasi kein schlimmer Fall in dem Sinne, aber schlimm
genug, dass sich dann am Ende auch Ärzte und Techniker.
Von unterschiedlichen Krankenhäusern noch
ausgetauscht, haben ne und haben dann zum Beispiel auch das
wiederum dem Unternehmen gemeldet, dem Hersteller und die
haben dann aber auch gesagt, so Leute das das funktioniert, das
geht nicht so, also da irgendwas ist da, das ist was komisches,
da haben die vielleicht irgendwie Probleme mit der Haut
oder so, aber das kann halt nicht von uns kommen, ne?
Ja. Genau.
Aber, und das ist ja auch noch n Punkt, die beiden Patienten, von
denen wir vorher jetzt gesprochen haben, die sind.
Ja, nicht explizit wegen dieser Bestrahlung gestorben.
Ne, die hat natürlich starke ein Beeinträchtigungen dadurch.
Aber dadurch, dass sie halt nicht gestorben sind, sage ich
jetzt mal, war es dann wahrscheinlich auch alles
erstmal noch nicht so schlimm. Mal ein bisschen salopp und
satirisch gesagt, für die das Unternehmen, aber es sollten ja
tatsächlich auch noch Leute wirklich akut davon sterben.
Genau da würde ich gerne noch einen Fall gleich mal anführen,
weil das Spannende ist nach diesen ersten Fällen.
Gab es ja auch. Irgendwie ne Reaktion von den
Behörden, ne, also beispielsweise die Canadian
Radiation Protection Boro forderte weitere
Sicherheitsmaßnahmen, weil die haben halt gesagt OK Leute das
kann es nicht sein. Ey hier ist jetzt echt zu viel
schon passiert. Da muss einfach mehr kommen.
Ihr müsst die Sicherheitsmaßnahmen erhöhen und
auch darauf hat die AECL halt nicht reagiert, was ich halt
auch sehr spannend finde, also im negativen Sinne spannend,
dass man sich so denkt, Leute, ihr könnt ja nicht sagen, wir
hauen jetzt n Sicherheitsupdate n Software Patch raus und jetzt
ist noch mal 5 mal so sicher. Ihr müsst einfach nachweisen,
dass das alles nicht mehr passieren kann, so ne, weil dann
gab es ja auch den Fall von Warn Ray Corx in Texas ja.
Der auch für ich glaube, das war seine achte oder neunte
Krebsbehandlung unter dem Terrak 25, das heißt, es ist schon n
paar mal gut gegangen, das heißt, er wird sich ja
wahrscheinlich auch sicher gefühlt haben.
Ne, wie gesagt, allgemein galt das Gerät ja als sicher.
Da ist aber was ganz Spannendes passiert und das lässt einen so
n bisschen aufhorchen. Und zwar der Techniker, der das
Gerät einstellt auf seine Behandlungsmethode, bemerkte
einen eingabefehler, er hat halt beispielsweise einfach den
falschen Modus ausgewählt. Wir hatten ja gesagt, es gab 2
Betriebsmodi ne und hat dann halt nach der Eingabe das
bemerkt. Und dachte sich, ah nee, Moment,
das ist n verdammt Patient Warren Ray Cox ist ja ne andere
strahlenart und wollt das umändern und dann ist auf dem
man kann sich vorstellen es gab halt so n kleinen Monitor mit so
einer kleinen Oberfläche UI technisch alles zur damaligen
Zeit ohne Maus nur Tastatur ne so MS dos Style sag ich mal und
da stand auf einmal malfunction Fifty Four auf dem Bildschirm
und. Die Möglichkeit, Proced zu
drücken, so nach dem Motto OK, es ist irgendwas gerade schief
gegangen, aber ich kann fortfahren und der Techniker
dachte sich halt ja OK es ist ich werd wahrscheinlich drauf
hingewiesen, dass ich hier irgendwie die Eingabe noch mal
geändert hab oder so, aber ich möchte ja wirklich die Eingabe
ändern und ne andere Strahlenart nehmen, also drück ich da drauf
ne weil der Punkt war, es gab gar keine Dokumentation, die
Techniker waren gar nicht geschult.
Im Sinne von was bedeutet malfunction Fifty Four
eigentlich? Da möchte ich ganz kurz
einhaken, weil und also ich, man kann sich ja jetzt überlegen,
ey, pass auf, da ist n Fehler, der aufpoppt ne so, da würde man
sich doch im Normalfall jedenfalls als ich mir das so
auch bei der Recherche angeguckt hab, denk ich mir doch wenn da n
Fehler aufpoppt ne wieso denkt sich denn jemand ey da ist n
Fehler ich mach einfach weiter so ne so und.
Das was du meintest ist natürlich n wichtiger.es war
nirgendswo dokumentiert. Es wurde auch in der Oberfläche
nicht angezeigt was eigentlich dieser Fehler bedeutet.
Das heißt eigentlich weiß darum keiner und jetzt kommt halt das
interessante, also es gab ungefähr also die Fehler 1 bis
64 so und die sind teilweise. Viermal am Tag, wenn nicht sogar
häufiger aufgetreten bei Behandlung, das heißt, es sind
dann irgendwie Fehler zwischen 1 und 64 sind aufgepoppt und dann
haben die Leute halt gesagt, OK, ich weiß jetzt nicht, vielleicht
irgendwas hab ich falsch gemacht, ich mach mal weiter so
und durch, aber zum Beispiel auch Erfolge bei der
Strahlentherapie war es halt so, dass sich die Leute dann oder
die Techniker oder Ärzte dachten, na ja, OK,
wahrscheinlich ist es alles zu ignorieren, das ist, es kann
nicht so. Wichtig sein, weil es
funktioniert ja trotzdem alles, weißt du, und demzufolge gab es
so eine Art Routine bei den Leuten, die das bedient haben,
die sich gesagt haben, ey, wenn ein Fehler kommt, mach einfach
possid, das geht schon, das passt schon so und was ich mich
halt Frage ist was also klar, wenn du diese Routine hast.
OK was ich aber wirklich interessant finde ist, du musst
ja irgendwann dieses Ding das erste Mal bedient haben als
Techniker oder Technikerin beispielsweise.
Und muss dir ja irgendwann sagen, Ey, hier ist gerade der
erste Fehler, der kommt. Was mache ich denn jetzt, weil
das finde ich, ist wirklich ein interessantes
Gedankenexperiment, weil was machst du in diesem Fall?
Sagst du einfach possid da wird jemand mit Röntgenstrahlung
beschossen, also das ist schon eine krasse Sache, also ich
denke mir so, bei dieser Routine verstehe ich es, aber bei diesem
ersten Auftreten finde ich es richtig krass.
Dass man sich einfach sagt, lass mal Proced machen.
Und witzigerweise waren ja eigentlich alle Fehler
tatsächlich vernachlässigbar, nur es ist halt.
Auch ein.in dem Moment, wenn ich wie jetzt von einem guten
Software Design ausgehe. Aus meiner Sicht ne, dann können
das Fehlermeldungen sein, die vielleicht nicht kritisch sind,
ne, dass halt vielleicht einfach ein Eingabefehler da ist oder
irgendwas. Wie du ja meintest, die meisten
konnte man vernachlässigen und wenn ich die Möglichkeit habe
Proced zu drücken und fortzufahren, würde ich mir auch
denken, die haben ja die Software sicher entwickelt und
es ist okay fortzufahren. Es ist eigentlich eher so eine
Art Warnung oder ein Hinweis, ich finde es darf gar nicht
möglich sein Proced zu drücken, wenn es doch so ein
schwerwiegender Fehler ist. Also als Anwender denke ich mir
nicht so okay ich kann jetzt drücken.
Weitermachen und dann passiert was ganz Schlimmes, weißt du,
sondern man würde ja eigentlich denken, ich hab gar nicht die
Chance weiterzumachen, wenn es jetzt gerade so schwerwiegend
ist. Und wenn die anderen Fälle
einfach vernachlässigbar sind oder waren, kann ich mir halt
vorstellen, dass man sich auch dachte, vielleicht hast du auch
Stress, da sind noch mehr, heute mehr Behandlung.
Und dann ey, ja, komm hier mach, wir müssen ne man.
Kann das ganze auch weiter nicht.
Richtig, man kann das Ganze auch weiter Spinnen und sagen, gut,
vielleicht haben die auch den Terrak 20 schon bedient und
wissen, dass es bestimmte Mechanismen gibt, die dafür
sorgen, dass es keine zu hohe Strahlung sozusagen also
losgefeuert wird auf den Patienten oder die Patientin.
Das kann natürlich auch sein, ne weiß man alles nicht genau,
aber. Dass da einfach Fail safe denn
hardwaretechnisch ist, also da nichts passieren kann,
sozusagen. Aber trotzdem das was du sagst
hab ich noch nicht so drüber nachgedacht, aber im ersten
Moment dachte ich mir, so wie wie kann man denn einfach proced
machen bei einem Fehler? Aber es stimmt schon, rein
theoretisch würde ich auch irgendwo erwarten, dass du bei
so einem schwerwiegenden Fehler gar nicht proced machen darfst.
Das stimmt. Ja, ist auf jeden Fall ne super
spannende Sache, was da passiert ist.
Und das ist halt auch echt irgendwie unvorstellbar und
leider Gottes muss man auch sagen.
Hat man Proced gedrückt? Wie gesagt, man war es so
gewohnt und Mail function 54 war dann am Ende doch was
schwerwiegendes wie wir es schon angeteasert haben, denn darauf
folgten 2 nahezu tödliche Schocks, die Warren Ray Cox
durchführen und. Traurigerweise, weil du
meintest, wie ist so einer, wie läuft so eine Behandlung ab und
wie ist die aufgebaut, war der Raumlautsprecher defekt, das
heißt der Techniker oder die Technikerin, die quasi die
Eingaben gemacht hatte und sozusagen im Nebenraum saß,
konnte seine Schreie nicht hören, also er hat halt
geschrien vor Schmerzen, weil die Schocks so extrem waren und
man hat es einfach nicht wahrgenommen und das Gerät hat
Halt fortgeführt. Fuhren fort, fuhr fort und
weiter, geht weiter und deutsch ist manchmal schwierig.
Er ist dann. Glaub ich auch.
Das Gestalten und hat gegen die Tür geklopft, weil du kannst
halt einfach aufstehen, rein theoretisch ne und dann wurde es
halt bemerkt. Aber ja und das ist halt völlig
krass, die Folgen davon sind auf jeden Fall, dass er Wochen
später aus dem Mund geblutet hat und.
An akuten Strahlenvergiftungen verstarb einfach und das find
ich halt. Ich glaub 5 Monate später oder
so ist er dann halt einfach gestorben.
Ja OK, ja gut, dann ist ist noch n Zeitraum aber gut kennt man ja
auch aus der Vergangenheit, dass es ne Weile dauert, aber der
Körper quasi in dem Moment akut verstrahlt wurde und man heute
davon ausgeht, dass es auch ne stärkere.
Oder eine höhere Dosis war als bei Tschernobyl damals.
Und das finde ich halt völlig krass.
Das ist auch echt heftig. Ja, muss man sich mal
reinziehen. Also da ist ja, das ist ja ein
Gerät was was das, dass es das überhaupt erzeugen kann, also
dass es möglich ist. Das ist ja eigentlich schon echt
Wahnsinn, aber es gab da noch einen anderen Fall, das war dann
der sogenannte Vernan Kit, das war auch noch einer, der
ebenfalls genau diesen Fehler auch bei.
Vor seiner Behandlung sozusagen. Also der Techniker oder die
Technikerin hat ebenfalls genau diesen Fehler 54 vor der
Behandlung gehabt und da war es dann so, dass er eigentlich
wegen wie heißt das Hautkrebs im Gesicht behandelt worden werden
sollte und dann hat er halt auf sein Gehirn im Endeffekt ne viel
zu hohe Strahlung bekommen und ist halt sogar noch vor Ray Cox,
der ja sozusagen vor ihm dran war.
Bisschen ist er trotzdem noch vor dem Ray Cox gestorben, weil
er halt einfach Strahlenschäden am Gehirn und am Hirnstamm hatte
und damit dann war es tatsächlich auch dieser Burn and
Kid, der als erster tödlicher Unfall in der Geschichte der
Medizin durch Strahlentherapie. Wie sagt man also, der
aufgezeichnet wurde? Und das ist halt wirklich krass.
Und die Gemeinsamkeit ist halt diese malfunction Fifty Four,
die in beiden Behandlungen aufgetreten ist im Vorfeld und
man sich das aber nicht richtig erklären konnte.
Wann tritt das denn auf, sodass dann halt auch nach diesen
fatalen Ereignissen man nach Erklärung gesucht hatte und
dieser Fehler untersucht wurde, dass man dann erstmalig gesagt
hat, OK. Was, was geht hier ab?
Ja, also was hat das mit diesem Fehler 54 zu tun?
Wir müssen das jetzt untersuchen und da gab es den Doktor Fritz
Hager, ich hoffe man spricht ihn so aus, n Physiker der sich das
Ganze angeschaut hat und untersucht hatte und im Prinzip
festgestellt hatte, dass der Terrak 25 aus verschiedenen
asynchronen. Routinen besteht also Prozessen
und hat darin im Prinzip eine Race condition festgestellt.
Zwischen diesen asynchronen Prozessen der Eingabe, also der
Techniker stellt ja die Daten ein und der Justierung des
Geräts, was du vorhin erklärt hattest mit dem Drehteller
beispielsweise, dass die richtigen Filter eingestellt
werden, um die Strahlung beispielsweise zu mindern, und
das sind 2. Asynchrone Abläufe.
Ja. Und da drin haben wir jetzt ne
Race condition. Magst du vielleicht mal erklären
für die für die liebe Zuhörer und Zuhörerinnen was Race
condition bedeutet, falls das kein Begriff ist?
Also man muss sich das ungefähr so vorstellen, dass du 2
theoretisch 2 Prozesse hast, die etwas rechnen.
Du möchtest aber zum Beispiel das Prozess 1, die als erstes
das Ergebnis liefert und dann? Prozess 2, das sozusagen Prozess
2 vom Prozess 1 abhängt. So, und es kann aber bei einer
Race condition sein, dass zum Beispiel Prozess 2
beispielsweise schneller ist als Prozess 1, und das ist dann
sozusagen eine Sache. Die du eigentlich gar nicht so
haben möchtest. Genau, also du hast im Prinzip
eine feste Reihenfolge, die du erwartest, damit du sagen
kannst, mein Programm läuft richtig.
Genau. Durch diese Race condition hast
du aber ne zufällige Reihenfolge.
Das kann 80% der Fälle gut gehen und dann hast du aber nach
gewissen Ereignissen sag ich mal oder Zufällen die Chance, dass
sie umgedreht zum Beispiel abgearbeitet werden oder der
eine wie du meintest, noch nicht fertig ist.
Und das ist halt sehr sehr gefährlich, gerade wenn sie
voneinander abhängig sind und darauf die Funktionalität oder
die korrekte Funktionalität der Software basieren.
Also es gibt zum Beispiel, man muss sich das ungefähr so
vorstellen. Also zum Beispiel wurde ne
häufige Eingaben, also ne sehr häufige Eingabe war, dass man am
Anfang eingestellt hat x Ray, also Röntgenstrahlung und nicht
zum Beispiel Elektronenstrahlung, das heißt
die Techniker oder die Technikerinnen hatten.
Intuitiv eine Einstellung, weil du musstest immer einmal durch
die Maske durchgehen und hast immer alles eingestellt und die
waren da wahrscheinlich sehr routiniert drin, haben es
relativ schnell gemacht. So haben dann die Einstellungen
eingegeben und haben dann zum Beispiel am Ende gemerkt, Oh
warte mal kurz, ich habe ja x Ray eingestellt, hier soll es
aber zum Beispiel Elektronenstrahl sein, weil
beispielsweise im Fall von Burn and Kit der Hautkrebs hatte,
musst du nur oberflächlich bestrahlen, das heißt es reicht
dieser Elektronenstrahl so und dann wurde das umgeändert.
Und diese Änderung konnte aber nicht mehr durchgeführt werden,
weil sozusagen die Positionierung von diesem Gerät
noch in Gange war. Ja, und das ist ein sehr
spannender Punkt. Weil wenn wir jetzt noch mal die
Fälle uns anschauen, wie du auch gerade bei worn Kid meintest,
waren das Fälle, wo die Techniker eingabefehler gemacht
hatten und diese dann noch schnell korrigierten.
Genau ne. Und dann ist halt diese
malfunction Fifty Four aufgetreten und das finde ich
halt spannend. Und dann hat man halt geschaut,
OK was was passiert da also dieser Doktor Fritz Hager hat
festgestellt, OK wir haben diese Race condition und die führt
dazu, dass wir ungefilterte Elektronenstrahlen, also
wirklich hochkonzentriert auf den Patienten abfeuern, was ja
zu diesen ja tödlichen Ereignissen führte am Ende und.
Wir haben ja gerade schon gesagt, es gibt halt 2 parallele
Prozesse, oder gab es in dieser Software, die asynchron liefen.
Einmal hast du diese Eingabe, die jetzt zum Beispiel noch mal
korrigiert wurde und der zweite Prozess ist im Prinzip die
Bewegung der Drehscheibe und der Magneten, damit alles richtig
eingestellt wird. Genau.
Jetzt hast du da drin diese schnelle Änderung.
Das heißt, du, du tippst ein dein Setting.
Der asynchrone Task der Justierung startet, sagt Okay.
Ich habe jetzt alle eingabedaten.
Ich fange jetzt an, mich zu justieren.
Ja. Und jetzt ändert ändere ich noch
was und die Oberfläche zeigt an okay pass auf, du hast die
Strahlenart geändert, kein Thema passt.
Klingt ja erstmal genau klingt, klingt ja erstmal okay ich kann
habe halt die Chance noch was. Einzustellen, zu ändern und die
Justierung adaptiert sich dann auf mein neues Setting.
Problem dabei war, genau das ist nicht passiert.
Richtig. Und der dieser Fritz Hager,
dieser Physiker, der das auch untersucht hat, der hat sich ja
im Endeffekt, er konnte es nicht auf sich sitzen lassen, er hat
gesagt, ich setze mich jetzt ein ganzes Wochenende dran und
versuche so lange diesen Fehler zu reproduzieren, bis das halt
auch funktioniert, und das hat er dann auch geschafft, hat das
dann sozusagen. Dokumentiert, wie er das gemacht
hat und hat das dann wieder an den Hersteller AECL geschickt
und die haben dann witzigerweise auch noch mal n Patch gemacht
und also beziehungsweise einmal gesagt, das und das Bitte nicht
mehr machen. Ne, also haben dann beschrieben
was man nicht tun darf damit also diese diese nachträglichen
Korrekturen und so weiter damit halt eben das nicht auftritt bis
zu diesem Software Update was Sie noch reingespielt haben, die
haben nämlich irgendwann auch gesagt ja pass auf, du kannst
mit diesem, du kannst ja mit diesem Cursor, also eigentlich
war diese Maske so ausgelegt, dass du einmal von oben links
nach unten rechts sozusagen alles eingibst.
So, und wenn du damit einmal durch warst, dann ist fertig,
nicht noch mal zurückgehen, irgendwas ändern, sonst was.
Und da haben wir nicht vorgesehen, genau, war nicht
vorgesehen, auch eigentlich krass ne, dass du sagst, so,
also das muss man ja auch erst mal wissen als jemand der das
bedient, ne also finde ich eigentlich auch Wahnsinn und
dann wurde das Halt rausgepatcht, dass du wieder
zurückgehen kannst, so dass du halt sagen kannst okay ich kann
halt immer weiter gehen, aber ich kann nicht noch mal
zurückgehen. So, sonst musst du halt das noch
mal neu starten, sozusagen das diese dieses Programm nenn ich
jetzt mal ne, dass du halt noch mal das von vorne diese Maske
eingibst. Was ich dabei spannend finde
ist, man hat quasi gesagt, OK, ihr könnt Mel function 54 quasi
verhindern, indem ihr nicht noch mal die Eingaben korrigiert oder
anpasst. Hat dann gepatcht, dass die
Cursor tasten, also die Pfeiltasten nicht mehr
funktionieren um zurückzugehen. Hat aber eigentlich dieses
Kernproblem gar nicht adressiert.
Der Software, weil die Software hat im Prinzip so funktioniert
wie du meintest. Du gibst von oben links nach
unten rechts alles ein, deine ganze Maske füllst du aus und in
dem Moment, wenn im Prinzip du ganz unten rechts angekommen
bist, hat die Software gesagt, OK, ich validier jetzt die
Eingaben, es sind alle da, weil der Cursor steht ja jetzt da
unten. Validiert die und sagt OK,
vollständig los geht es, wir justieren und dieses Justieren
hat ungefähr 8 Sekunden gedauert, das war halt so n
eingebautes Delay, weil das wurde halt sehr fein justiert
und langsam, damit das halt auch alles ordnungsgemäß ist, spricht
ja nichts dagegen. Spannenderweise gab es intern
einen Fleck, was quasi gesetzt war, so nach dem Motto.
Hab ich vollständige Eingaben oder nicht?
Muss ich jetzt schon die Magnete beispielsweise justieren oder
nicht? Und das wurde zu, also quasi in
dem Moment, wenn ich unten rechts war in der Eingabe und
vollständig laut Happy Path nenn ich es mal alles eingegeben
hatte, wurde dieses Flag gelöscht und dann wurde justiert
und dann wurde gar nicht mehr geprüft ob die Eingaben da sind
oder geändert wurden, das find ich halt so absolut abgefahren.
Obwohl, du konntest nicht angezeigt wurde.
Genau. Du konntest ja aber trotzdem die
Eingabe ändern und in der Oberfläche wurde es angezeigt,
aber intern dadurch, dass dieses Fleck fehlte, wurde diese
Änderung nicht übernommen und er hat quasi deine erste
vollständige Eingabe. Demnach das alles justiert und
egal was du danach eingetragen hast, das wurde einfach komplett
ignoriert, da gab es keinen Sicherheitscheck mehr oder
irgendwas und was ich auch richtig spannend finde ist wie
du ja meintest, die haben den Patch gemacht, dass du nicht
mehr zurückspringen kannst. Was aber auch Quatsch ist.
Wenn du aber alle anderen Editiermöglichkeiten drin lässt,
weil du konntest auch einfach die Cleartaste also entfernen,
zum Beispiel drücken und ne neue Eingabe reinschreiben für das
Feld, auf dem du gerade warst. Genau das heißt, die Techniker
haben am Ende trotzdem wieder N-Weg gefunden, die waren
wahrscheinlich nur angepisst. So Mann, ich kann jetzt nicht
pfeiltaste nairobe oder so drücken, das nervt ja aber ach
ja gut, warte so kann ich es noch korrigieren und im
Endeffekt hattest du dann das gleiche Verhalten wieder am
Ende. Definitiv.
Du hattest eben auch noch von Magneten gesprochen, da würde
ich auch noch mal ganz kurz, dass man sich das vorstellen
kann. Die Magneten sind also du hast
ja den Drehteller, den hatten wir ja beschrieben, es gibt
zusätzlich noch Magneten, die dafür da sind, um wenn je
nachdem wie du sie einstellst, die.
Bündelung des Strahls sozusagen einzustellen, weil das sind ja
elektromagnetische Strahlen. Das heißt, du kannst sie
ablenken mit Elektro, also mit Elektromagneten, und demzufolge
kannst du halt sozusagen sagen okay sehr auf einen Punkt
beschränkt oder auf eine gewisse Fläche, so konntest du ja quasi
diesen Strahl einstellen. Also sozusagen die Intensität
dieses Strahls plus dann natürlich noch den Drehteller,
dass du, dass der Drehteller natürlich auch zusammenpassen
sollte, wenn du röntgenstrahl nimmst, dass du auch den
Röntgenstrahl Filter nimmst und so weiter und sofort ne, das
sind ja so n paar Kleinigkeiten und um das jetzt noch mal kurz
zusammenzufassen, also es gab verschiedene Probleme, einmal
gab es das Problem, dass wenn du etwas eingestellt hattest, was
sozusagen ne mechanische Veränderung zur Auswirkung hat,
ne dann. War es ja so, dass du in dieser
Zeit, wo diese mechanische Veränderung stattgefunden hat,
also wirklich physikalisch am Gerät, konntest du keine
Eingaben mehr machen beziehungsweise konntest du
schon, aber die wurden nicht übernommen und es gab noch den
zweiten Punkt oder diesen zweiten Bug, dass wenn du einmal
unten an der Maske angekommen bist, dann hat das Gerät gesagt,
OK, wir sind fertig, du willst ja wohl diese Einstellungen so
haben. Genau, dass das quasi Instant
getriggert wurde, so nach dem Motto Du bist jetzt da unten.
Du hast alles eingegeben, es gab nicht noch mal sowas wie
bestätigen oder sowas, was man vielleicht noch erwarten würde.
So soll ich jetzt justieren. Ja Nein weißt du, so war
vereinfacht gesagt das find ich halt auch spannend, dass es
einfach so getriggert wurde und diese Routinen dann angestoßen
wurden, was auf jeden Fall spannend ist, dass das, was wir
gerade beschrieben haben als Texas Bug in die Geschichte dann
einging, weil ja beide Vorfälle von Cox und Kid in Texas.
Quasi auftraten oder stattgefunden haben.
Genau, und das jetzt als Texas Bug bekannt ist auch.
Interessant muss man natürlich immer Namen geben, den ganzen
Sachen, was ich auf jeden Fall interessant finde ist, dass
natürlich solche Ereignisse, ne, also diese.
Probleme, die aufgetreten sind. Patienten sind sogar gestorben.
Das erregt natürlich Aufmerksamkeit, sowohl bei dem
Personal. Also du verlierst ja irgendwann
auch das Vertrauen in dieses Gerät als Arzt, Ärztin,
Techniker, Technikerin, so, das ist ja das eine und das andere
ist, dass natürlich auch der. Hersteller irgendwo im Zugzwang
ist und sagen muss, ey, Pass auf, wir müssen hier wirklich
noch mal was nachbessern, da sind jetzt wirklich nachweislich
Leute gestorben und da wurden dann auch noch mal ein paar
Software Fail safe Mechanismen eingebaut, es wurde sogar noch
auch es wurde sogar glaube ich auch noch hardwaretechnisch ein
bisschen nachgerüstet, dass man halt wirklich sagt OK Leute, wir
hatten jetzt hier Todesfälle, das ist nicht cool, wir müssen
das irgendwie unterbinden. Und da wurde ja wirklich noch
was gemacht. Und dann kam es ja dazu, dass
dann sicherlich noch Krankenhäuser gesagt haben, gut,
OK, alles klar, das Ding ist funktioniert, man muss sich das
ja auch im Endeffekt wieder so vorstellen, es ist ja nicht so,
als würde jetzt quasi ein Patient rankommen, es passiert,
was der nächste gleich wieder, sondern es ist ja so, dass es
natürlich sehr, sehr vereinzelte Fälle sind.
Dann muss man sich mal vor Augen halten.
Das heißt wahrscheinlich, nach diesen Änderungen lief das
erstmal alles wieder gut. Alle Strahlenbehandlungen vom
Terrak 25 haben wieder super funktioniert, also alles in
Ordnung, ne so, nur dass dann blöderweise oder tragischerweise
es zu noch einem Opfer kam und das war Glenn Dot, das war dann
später nur ein Jahr später, also 1987 befinden wir uns jetzt
ungefähr. Und der hat dann eben auch
wieder eine Überdosis bekommen und ist leider auch daran wieder
verstorben. Und da kann man sich natürlich
jetzt fragen, OK, wir haben doch aber die entsprechenden Fehler
herausgefunden, die wurden ja quasi ne herauskristallisiert
und wohlbehoben. Genau diese Mailfunction 54 ist
ja eigentlich vom Tisch gewesen. Ne, man hat.
Das Personal geschult, man hat dagegen gepatcht und das
versucht zu verhindern, was heißt versucht.
Man hat halt quasi Fixes eingebaut, was übrigens noch ne
kleine Site Note ne der fix für diesen Bug ist im Endeffekt nur
dieses Flag da was ich meinte nicht zu löschen, das muss man
sich mal vorstellen was für ne kleine Softwareänderung dann
bewirkt hätte und das ist halt immer das krasse was was für
mich so mind blowing ist ne so. Ist wahrscheinlich eine Zeile,
die du änderst. Ja, auf jeden Fall.
Glenn Dot ist dann im Prinzip auch an einer akuten
Strahlenvergiftung gestorben wieder und man fragt sich, wie
zur Hölle ey das Thema war vom Tisch, wie konnte das passieren,
wieder eine viel zu hohe Strahlung auf die Brust war es
glaube ich was sein komplettes Gewebe verbrannte und innere
Organe zerstörte, also wieder n völlig krasser Fall und.
Man dann wieder anfing. Wo ist denn jetzt noch was
kaputt in der Software? Ne richtig und dann kam es zum
bekannten Washington Bug, weil das Ganze in Washington
stattgefunden hat oder sich ereignete und diesen Washington
Bug möchte ich mit dir auch noch mal behandeln, weil der ist
finde ich noch krasser wie das alles zusammenspielt.
Und zwar geht es dabei um diesen Mechanismus der Justierung, der
zum Beispiel der Magnete, was wir angesprochen haben, also vor
auch von diesem Drehteller, ne, das war, da müssen wir mal kurz
eintauchen, wie das Softwaretechnisch umgesetzt
wurde, weil wir hatten ja gesagt, es gab keine facesafe
Mechanismen, also so Logs hardwareseitig, sondern es wurde
rein softwaretechnisch überwacht, und dafür gab es.
Im Prinzip ein Zähler in der Software, der die Schritte, das
war halt so ein Schrittmotor dran, das war halt so eine ganz
langsame Bewegung, der die Schritte gezählt hat, im
Prinzip, jede Bewegung hat den Zähler um 1 hoch gezählt, also
das heißt der Motor dreht 1 weiter, es wird wieder ein
bisschen justiert, der Zähler sagt Plus 1 und so konntest du
quasi die Schritte zählen, die es gebraucht hatte.
Um bis es final eingestellt war, sozusagen, so die Erklärung
dahinter. Und da denkt man sich so, OK,
man zählt die Schritte, aber muss man nicht irgendwie die
Positionierung sich merken, was heißt merken, irgendwie
ermitteln? Also ich will ja wissen, ob es
richtig positioniert ist und nicht wieviel Schritte es dauert
um die richtige Position zu erreichen, das ist halt schon
mal so n Ding, denkst du dir so OK, spannenderweise war es so,
dass es. Eine Überprüfungsfunktion gab
die Halt auch diese Fehlercodes gesetzt hat.
Ne, also diese Malfunction diese Routine hieß Setup Test genau
die Setup Test war im Prinzip die nach jedem Schritt der
Bewegung aufgerufen wurde die Routine ne also die hat sich so
quasi selbst rescadued und immer ständig geprüft ist.
Die Justierung abgeschlossen bin ich an der finalen Position
genau oder welche Fehlerzustand sozusagen ne genau das heißt es
war immer n fehlerzustand wenn ich nicht die richtige Position
hatte. Das.
Heißt, man kann sich das so vorstellen vom Ablauf dieser
Zähler zählt plus 1, weil eine Bewegung stattgefunden hatte.
Dieser Zähler ist ungleich 0, weil wir uns ja in einer
Bewegung befinden, sozusagen ne, also 123 wirklich inkrementiert
so. Das heißt, wir sind noch in der
Bewegung. Ich muss prüfen, habe ich einen
Fehlerzustand oder bin ich in der richtigen Position, dann
wurde diese Überprüfung durchgeführt und es wurde
festgestellt, hey, du bist richtig, oder nee, passt noch
nicht und das wurde ausgewertet und dementsprechend dieses Setup
sage ich mal abgeschlossen oder fortgeführt.
Das heißt, der Zähler wurde auf 0 zurückgesetzt.
Wenn es richtig war, und es wurde die nächste Routine
angestoßen. Im Prinzip die Behandlung am
Ende ne, weil man sagt das Gerät ist richtig eingestellt, die
Behandlung kann starten so. Weit so gut, bisschen wild mit
dem Zähler da, aber OK interessanterweise
softwaretechnisch. Wenn wir also wenn man sich das
so ein bisschen vereinfacht vorstellen will, war dieser
Zähler. Im Endeffekt synchron mit.
Wie oft wurde eigentlich schon die Setup Test Methode oder
diese Routine aufgerufen so das heißt im Endeffekt wurde einfach
nur gesagt Okay nächster Setup test wird gemacht, es wird halt
immer wieder geguckt ist der Drehteller richtig eingestellt
und dafür wurde sozusagen wurde auf auf Fehlercodes überprüft
und gesagt Okay gibt es denn Fehler gerade oder ist denn der
Zustand meiner Justierung korrekt und diese Variable hat
zum Beispiel gesagt. Wenn das 0 ist, dann ist alles
gut. Das heißt, es gab quasi die
Fehlervariable, die entweder n wert hatte oder 0 war und es gab
diese Zählervariable, also Fehlervariable und
Zählervariable und die Zählervariable war eigentlich.
Einfach nur ein Zähler wie oft Setup Test aufgerufen wurde und
wurde, eigentlich aber immer dafür genutzt um zu sagen ey wir
sind ungleich 0 weil wir ja quasi gerade in der Routine
sind, also überprüfen wir die Variable ob ein Fehler vorliegt
so. Genau, also im Prinzip war es
eigentlich, es war ein Zähler, aber eigentlich sollte es nur
Aussagen, befinden wir uns in der Justierung oder nicht genau.
Das ist halt das spannende dabei, warum es ein Zähler ist,
weiß wahrscheinlich nur der eine Hobbycoder, aber es ist halt im
Prinzip die Aussage dahinter ist befinden wir uns noch in der
Justierung. Ja, ich überprüfe ob die
Position stimmt und wenn ich kriege ich einen Fehler wenn ich
einen Fehler kriege befinde ich mich immer noch in der
Justierung, das heißt das ist dann halt dieses Rescaduling und
zyklische zu sagen ich prüfe das so lange bis wir in der finalen
Position sind, ansonsten hat die Maschine einen Fehler, was ja
richtig ist und. Und das hat ja auch so
funktioniert. Und jetzt ist aber spannend,
dass halt dieser Fall von Glenn dort aufgetreten ist und auf
einmal wieder eine viel zu hohe Bestrahlung zustande kam, die
tödlich endete. Wie zur Hölle konnte das
passieren und wenn man sich das Ganze quasi noch mal vor Augen
führt, wie dieser Ablauf ist? Du hast es ja anfangs erklärt,
ne, man legt sich da auf den Behandlungstisch.
Dann wird das Gerät positioniert und so weiter der Ablauf vom
Techniker war, dass er eigentlich erst in diesem
benachbarten Raum ist, diese Grundsettings einstellt.
Sowas wie Patientenname, Strahlungsart und so weiter dann
in den Behandlungsraum geht zum Patienten.
Dafür sorgt, dass korrekt positioniert ist, also der
Strahlungspunkt ne, dass das genau da ist, wo es hingehen
sollte. Das ist ja auch glaub ich mit so
einer Lichttechnik gewesen, ne, dass du halt wirklich so n Punkt
gesehen hast. Wo ist das Ziel und hat dann an
der an der Maschine selbst in einem Terminal die finalen
Eingaben gemacht, die musste er mit Press Set Button bestätigen,
dann hat er das gemacht, hat den Raum wieder verlassen und die
Behandlung. Ging los beziehungsweise das
Gerät hat sich justiert und dann ging es los, wie wir ja gerade
erklärt hatten. So was ist jetzt passiert und da
muss ich sagen, ist leider Gottes so ein richtig
klassischer Bug drin in der Software den man einfach 1000
mal schon gehört hat und man sich immer wieder denkt warum
zur Hölle passiert das weil diese Zählvariable über die wir
gesprochen hatten war. Aber wahrscheinlich auch aus
Speichergründen eine 1 Byte, also 8 bit variable.
Das heißt, sie konnte einen Zahlenwert von 0 bis 255
annehmen. Ganz klassisch.
Jetzt haben wir aber das Thema, dass wir gesagt haben, diese
Test Setup skeduals sich ja immer wieder selbst.
Das heißt 100 Hunderte genau, es sind halt Hunderte Durchläufe.
Die diese Überprüfung ausführen, das heißt, der Zähler zählt
locker über diese 255 und hat dann nen arithmetischen
Überlauf. Ganz klassisch heißt springt
wieder auf 0 und zählt von vorne, das sollten ich glaube
das ist so gut wie jeden ein Begriff und warum ist das kein
Problem allgemein gewesen, weil die das hat ja funktioniert,
also der Entwickler muss sich ja gedacht haben OK funktioniert
doch, also wir wir haben es doch getestet läuft.
Und da ist halt ne ganz krasse Verkettung an Ereignissen
passiert. Magst du das mal erklären, was
im Prinzip bei glatt dort passiert sein muss?
Genau, also ganz kurz noch eine Sache wie du hast es ja gerade
erklärt der Techniker oder Technikerin muss ja dann oder
muss nicht unbedingt, aber es gab die Möglichkeit, diese
explizite Positionierung mit diesem Laser noch durchzuführen,
so, das heißt es war auch ne Sache, die nicht jedes Mal
passiert ist. Aber du konntest es so tun.
Das heißt, der Techniker ist jetzt reingegangen.
Zu Glen Dot hat diese Positionierung aus also
durchgeführt, das heißt, er hat dann noch mal quasi mit diesem
Laser das Ganze, also zum Beispiel seine, seine, sein
Brustbereich, richtig ausgerichtet, nachdem er das
eingestellt hat, war er im Raum, hat an der Maschine dann zum
Beispiel gesagt, Okay, jetzt möchte ich gerne die
Einstellungen so setzen und hat den Set Button quasi gedrückt,
so und. Und in dem Moment, wo du den Set
Button drückst, kann es wenn keine Fehler da sind, werden
diese Einstellungen auch so übernommen.
Genauso wie Sie sind. Das heißt, die Justierung
startet dann. Genau so.
Und das Problem ist jetzt aber, dass und jetzt kommen diese 2
Variablen wieder. Wir haben gesagt, diese
Zählervariable und die Fehlervariable so wenn diese
Justierung aber noch nicht ganz abgeschlossen ist, gibt es ja
einen Fehler in dieser Fehlervariable.
Die, sagt Ey, Wir sind noch nicht so weit.
Diese wird aber nur überprüft, wenn die Zähler variable
ungleich 0 ist. Das bedeutet, wenn du in dem
Moment, wo du einen arithmetischen Überlauf von 255
auf 0 wieder hast, genau in diesem Moment super krasser
Zufall den Set Button drückst, dann wird sozusagen diese
Einstellung, so wie sie es übernommen und die.
Behandlung kann dann losgehen, so wie sie ist.
Bedeutet also, dass es durchaus möglich ist, dass du zum
Beispiel den falschen Filter für den falschen Strahlungsmodus
verwendest. Weil es nicht richtig
eingestellt ist, weil in der Software halt 0 als korrekt
positioniert galt, weil der Zähler einfach so aufgebaut war.
Ungleich. 0 ist nicht korrekt und 0 ist korrekt, aber erzählt
halt und erzeugt halt diesen Überlauf und das spannende Ich
habe mich halt gefragt, warum das?
Ist der Zähler schon übergelaufen?
Bevor ich Set drücke? Das war so n Klemmer als ich das
so n bisschen recherchiert hatte, weil ich mir dachte was
ist das für ne Softwarearchitektur, warum
passiert das und das lag daran, dass er wie gesagt draußen im
Nachbarraum die ersten Eingaben gemacht hatte und dann diese
Testroutine einfach startet und asynchron läuft und quasi sich
ganze Zeit rescadued und sagt. Ja nee, Fehler Fehler, Fehler,
Fehler, Fehler weiter testen, testen und der Zähler zählt und
zählt und läuft über und läuft über und das ist halt ich sag
mal mit einer Wahrscheinlichkeit von was ist das 1 zu 255
Roundabout hast du halt dann die Chance genau dann Set zu drücken
ja wenn der in dem nächsten Schritt quasi genau dann diese
Task sagt ich hab n Überlauf und der Zähler ist 0.
Du setzt die neuen Einstellungen, die Software sagt
Hey, alles korrekt positioniert und dann schaltet quasi diese
sag ich mal statemachine intern direkt auf Test done Behandlung
geht los und dann wird. Halt wird halt diese Bestrahlung
abgefeuert und dann halt eben auch bei fehlerhaften oder noch
nicht. Fertig eingestellten beim noch
nicht fertig eingestellten Gerät, das ist schon krass, das
ist ein sehr, sehr heftiges Ding, auch sehr, sehr viele
Zufälle, die da eintreten müssen, logischerweise.
Deswegen war es natürlich auch ja ein Einzelfall, mehr oder
weniger das Ding ist, und das finde ich halt auch sehr
interessant, im Endeffekt war es ja so, dass dass man eigentlich
anstatt dieser Zähler variable am besten eine Variable hätte
nehmen müssen, die ungleich 0 wäre in der Zeit während diese
Setup Routine läuft. Dieser Setup Test und ich hatte
beiläufig gelesen, ich bin mir jetzt nicht hundertprozentig
sicher, aber es ist so ein Assembler Ding, dass du dadurch,
dass du zum Beispiel diesen Zähler verwendest, nur ein Byte
rein theoretisch brauchst, anstatt.
Mehrere ne, also wie du meintest Speicher hat hat halt einfach
was auch gerade damals ne je weniger Speicher man benötigt
hast desto besser war es halt einfach weil das war damals auch
noch mal ne andere Nummer als heute und das fand ich halt
einfach krass, dass es deshalb aus diesem Grund wohl eine
Zählervariable genutzt wurde und daran her halt eben nicht
gedacht wurde, dass das noch möglich ist.
Was wir gerade beschrieben. Haben.
Was halt auch noch ne coole Side Note ist.
Also oder interessant ist, dass sie das natürlich gefixt haben,
die haben ja irgendwann das herausgefunden und der fix war
aus diesem Zähler einfach ne feste Zahl, ungleich 0 zu
machen, wie wir ja auch meinten. Ja genau, also das ist auch
wirklich der Fix am Ende gewesen und das finde ich halt so krass
und jetzt fragt man sich oder haben sich viele Leute glaube
ich gefragt? Wieso zur Hölle hat er da ne
Zählervariable draus gemacht? Es spielt gar keine Rolle
wieviel Steps das braucht, ne weil es geht ja um die wie ich
eingangs meinte um diese endposition und nicht wieviel
Schritte, also wie oft quasi diese Routine durchlaufen wird
das das spielt gar keine Rolle, es wurde ja eigentlich genutzt
um festzustellen bin ich noch in der Bewegung oder nicht.
Ich glaube, man dachte sich einfach, ist doch ganz cool,
wenn sich da an der Variable zählt und hat diesen Überlauf
halt nicht beachtet oder sich nicht war sich nicht im Klaren,
dass diese Verkettung an Ereignisse passieren kann.
Also ich würde ja auch niemanden irgendwie was böswilliges
unterstellen, aber es ist halt krass und es zeigt wieder, wie
Ereignisse zufällig aufeinandertreffen können und
dann so eine krasse Auswirkung haben und Gott sei Dank war es
sehr unwahrscheinlich, dass es passiert, aber es sind trotzdem.
Todesfälle zu viel, sagen wir es mal so, ne, die man hätte
vermeiden können und deswegen wir sind auch schon ziemlich
fortgeschritten in der Zeit. Lass uns mal kurz noch
schlussfolgern und lernen draus ziehen, weil unsere Big Fails
folgen sollen ja nicht immer nur beleuchten was schief lief,
sondern man soll ja versuchen da auch was draus zu lernen, auch
für dich liebe Zuhörer liebe Zuhörer, deswegen hau doch mal
raus fabi, was sind für dich so Learnings die du daraus ziehen
kannst? Also wichtig ist natürlich, dass
die, sag ich mal softwareseitige Eingabe.
Auf jeden Fall immer synchron mit der Hardware läuft.
Das heißt, du könntest ja rein. Theoretisch ist natürlich ne
nervige Sache, aber nur um das sich ganz einfach vorzustellen,
du könntest ja sagen, wenn ich etwas einstelle und dadurch dann
ein mechanisches, ein mechanischer Mechanismus
ausgelöst wird, der irgendwas einstellt, dann.
Könntest du ja im einfachsten Fall sagen, OK ich warte n paar
Sekunden, du kannst in der Oberfläche jetzt nichts
eingeben, dass du halt wirklich synchronisierst.
Deine Eingabe mit dem was halt da passiert ist natürlich ne
sehr sehr einfache dargestellte Sache.
Im optimalen Fall kannst du das trotzdem asynchron parallel
machen und es wird halt eingestellt, aber so, dass es am
Ende immer dazu kommt, dass du einen synchronen Zustand hast
zwischen deiner UI und zwischen der echten Hardware ne und das
ist auf jeden Fall. Designfehler der Software selber
gewesen, was man auf jeden Fall definitiv immer im Auge behalten
sollte. Bei sowas genauso wie zum
Beispiel einfach diese failed safe Mechanismen.
Also es gibt ja zu. Ich denke mir so, wieso konnte
dieses Gerät überhaupt so eine extrem hohe Strahlung abfeuern,
weil halt eben die Hardware dafür möglich, dass es war
möglich, das war ja vorher beim Terrak 20 eben nicht möglich,
aber genau solche Sachen sind wahrscheinlich einfach, gerade
wenn es um Menschenleben geht durchaus sinnvoll sowas noch zu
verwenden. Ja.
Oder halt softwareseitig doppelt abzusichern.
Und was ich auch eingangs mal gesagt hatte, Softwaretests
haben gefehlt, die. Wahrscheinlich, weil es halt
einfach Hobby Coding mäßig dahin gewurstelt wurde.
Und gerade damals war mit Softwaretests vielleicht auch
noch nicht ganz so. Populär wie heute aber das sind
zum Beispiel Sachen, die mir da direkt einfallen, was man besser
machen müsste oder worauf man achten sollte.
Dann kommt da auf jeden Fall noch hinzu, dass man diese, wenn
man schon so Fehlercodes hat, die auch klar dokumentieren
sollte und das Personal dahingehend schulen sollte.
Weil, wie zum Beispiel diese Malfunction Fifty Four, wo quasi
keiner wusste, was dahinter steckt, aber eigentlich die
Aussage war, EY, die ist ne fehlerhafte Positionierung, so
ne drückt. Nicht proced also auf keinen
Fall Proced erlauben. Sozusagen.
Du kannst das ganze ja weiterführen und sagen, diese
fehlerhafte Positionierung führt entweder, und das fand ich auch
interessant, zu einer zu hohen oder zu einer zu niedrigen
Strahlung, was auf jeden Fall zur falschen Behandlung, ne zur
falschen Behandlung, also entweder akute.
Möglicher akuter Tod sag ich jetzt mal ne, also relativ
schnell oder halt Tod durch die Krankheit, weil sie eben halt
nicht richtig behandelt werden. Hätte ne.
Ja, ja, also. Ja, das sind eigentlich die
wichtigsten Punkte. Ne.
Immer versuchen diese Race conditions zu verhindern, wenn
ich halt mit so asynchronen Routinen arbeite.
Es muss Failsafe sein, du brauchst Redundanzen einfach bei
so sicherheitskritischen Sachen ne gute Dokumentation, ne gute
Abtestung das sind einfach wirklich extrem essentielle
Punkte und ich finde dieser terrac 25.
Ist und wird auch bleiben. Das wird ja auch in Unis
behandelt und so, wenn es da halt um sicherheitsrelevante
Systeme geht, zum Beispiel immer so ne Art Mahnmal bleiben, dass
man sich wirklich vor Augen führt, welche Verantwortung auch
ethisch gesehen man in der Softwareentwicklung tragen kann,
gerade im zum Beispiel medizinischen Bereich.
Definitiv. Also würde ich sagen.
Tino, Erstmal danke für diesen interessanten Fall hier, den wir
besprochen haben und auch recherchiert haben.
Und liebe zürin lieber zürer, ich würde auch sagen, denkt
bitte auch wenn ihr Software entwickelt, immer daran was für
Auswirkungen eure Software haben kann.
Es ist sehr sehr wichtig, dass man da auch wirklich da im Bilde
ist und. Sich so was vor Augen führt, was
da theoretisch passieren kann und immer mit der gewissen
Verantwortung dahinter. Auch diese Software entwickeln.
In dem Sinne würde ich sagen, schreibt uns doch gerne auf
unserer Podcast Mail oder auf unseren Plattformen.
Das ist übrigens alles in den Show Notes verlinkt, wie euch
die Folge gefallen hat, bewertet gerne auch den Podcast.
Das würde uns natürlich mega freuen und wenn ihr sagt, Ey
Calling Body ist ein cool, die mag ich, die möchte ich ein
bisschen unterstützen, gibt es auch einen kleinen Spenden Link
in. Den Shownotes und in dem Sinne
würde ich sagen, habt alle noch einen wunderschönen Tag und wir
hören uns beim nächsten Mal wieder eure Calling Buddies
gemeinsam. Besser.