Atidėta katastrofa
Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Atidėta katastrofa (angl. delayed crash) – situacija, kai klaidingas kodas pats savo darbą atlieka, tačiau tai darydamas pažeidžia kitą (dažnai neprognozuojamą) sistemos dalį. Dažniausiai taip atsitinka masyvo rėžių netikrinančiose programavimo kalbose, kuomet per klaidą modifikuojamas atminties turinys už masyvo ribų. Tačiau panašių situacijų pasitaiko naudojant bet kurio lygio programavimo kalbas (Java pavyzdys). Pažeista atminties dalis gali būti naudojama saugoti kitiems kintamiesiems (kurie staiga įgauna netikėtas reikšmes) ar net ir procesoriaus komandoms (staiga įvykdomi neplanuoti veiksmai, paprastai iškart nutraukiantys programos darbą).
Pasekmės pasireiškia ne vykdant klaidingą kodą, o vėliau, kai kada po daugelio minučių ar net valandų nepriekaištingo darbo, kuomet prireikia neleistinai modifikuotos programos dalies ar kintamųjų. Aptikti tokias klaidas itin sunku: radus vietą, kurioje įvykdomos neteisingos operacijos, tiesiog nustatoma, jog kodas toje vietoje „mistiškai“ elgiasi prieš programuotojo valią.
„Atidėtos katastrofos“ vengiama visada automatiškai tikrinant masyvų rėžius bei vykdant įvairias kitas kontrolines patikras.