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.