Ist ein Race-Condition-Fehler.
Eine "Race Condition" ist eine ganz besonders fiese Art von Lücke, die man als Programmierer nur sehr, sehr schwer vermeiden kann - falls man überhaupt eine Chance hat, sie auch nur zu erkennen. Das sind nämlich Fehler die auftreten, obwohl man überhaupt nichts falsch gemacht hat... (Ich weiss, das klingt widersinnig. ist aber so.)
Ein Beispiel für eine RC-Situation im alltäglichen Leben. Schauplatz: Die Küche in einer WG
Die Besteckschublade ist leer, sämtliche Messer und Gabeln liegen noch benutzt und schmutzig im Spülwasser. Du möchtest aber gerne jetzt was essen und bräuchtest das Zeug dringend. Während dein Essen noch auf dem Herd bruzzelt, fängst du also schon mal an das ganze Zeug zu spülen.
Du trocknest dir schliesslich die Hände ab und nimmst zuversichtlich die Pfanne vom Feuer. Du richtest dir alles auf dem Teller an, als letzte Aktion vor der Mahlzeit möchtest du noch Messer und Gabel aus der Schublade nehmen. Die MÜSSEN doch jetzt da sein, du hast doch gerade eben extra noch gespült. Als du die Schublade öffnest, ist sie jedoch ... völlig LEER. (???)
Deine vier Mitbewohner und ihre sieben Freunde hatten ebenfalls Hunger und sich vom Pizzamobil beliefern lassen, während du gekocht und gespült hast. Noch während du dir die Hände abgetrocknet hast und dadurch für einen Moment abgelenkt warst, kam Klaus-Dieter in die Küche gelaufen und hat sich von dir unbemerkt den gesamten Inhalt aus dem Besteckfach gegriffen.
Weder du selbst, noch irgendjemand der gerade genüsslich auf seinen Peperoni herumkaut, ist sich irgendeiner Schuld bewusst, irgendwas falsch gemacht zu haben. Klaus-Dieter hat in seiner Eile noch nicht mal bemerkt, dass du überhaupt in der Küche warst. Kein Fehler gemacht, von niemandem - und dennoch gibts Zoff. Alles was passiert war ist, dass sich mehrere völlig unzusammenhängende und nicht vorhersehbare Aktionen zeitlich sehr ungünstig überlagerten, was zu einem "Race Condition" Fehler führte.
Programmierern passieren solche völlig absurd und paradox erscheinenden Sachen ständig. (Der bittere Preis von "Multitasking" und einer Hardware die aus mehreren, völlig autonom voneinander agierenden Subkomponenten zusammengefügt wird.)
Der Fehler lässt sich nämlich nur ausnutzen, wenn man das iPhone erst nach dem Anschluss an den USB-Bus einschaltet.
DAS war mit Sicherheit nicht der Grund, von einem solchen Typ von Fehler auszugehen.
Das erscheint dem Laien zwar als ein vermeintliches Argument dafür, aber logisch gesehen wäre ein solcher Rückschluss völlig unzulässig. Die spezifischen Bedingungen, unter denen ein bestimmtes Problem tatsächlich auftritt, und die Definition für eine grundsätzliche Art von Fehler haben etwa so viel gemeinsam wie ein Kilo Äpfel mit einem sibirischen Volkstanz. Ganz anderes Thema.