Chyby v Matrixu
aneb Murphy nikdy nespí
Chyby v Matrixu. Kdybyste věděli, co jsme se kvůli nim navztekali. Jak rok co rok vymýšlíme sofistikovanější krizové scénáře, a přesto se někde objeví, mrška jedna neotestovaná. Kdo si říkáte, zaplaťpánbůh za chyby v Matrixu, jinak bychom toho molocha nikdy neporazili, hluboce se mýlíte. Pravý hacker, kryptograf, netrunner, binární rytíř a zasvěcenec svatého džihádu proti strojům ví, že jakékoliv chyby vnášejí chaos do jeho počínání, způsobují nejistotu a věřte, není nic horšího pro bojovníka s virtuální realitou, nežli nejistota. Když neví, zdali je chyba u něj nebo u šifry. Vzpomeňme na různé překlepy, špatně pochopené změny v šifře na poslední chvíli, rozházené řady znaků v smskách a samozřejmě se obraťme do vlastních řad a vzdejme minutu ticha za kamenné kelty.
Ze všech nejpodlejší, nejhůře zjistitelné a fatálně hatící nekonečný boj, jsou chyby počítačové. Neříká se nadarmo, že když je to zelené nebo se to hýbe, jde o biologii, smrdí-li to, jde o chemii, a nefunguje-li to, jde o informatiku. Počítače jsou schopny vygenerovat tak zákeřné chyby, že projdou několikerým sítem testů, dlouhou dobu jsou uživatelné se vším spokojeni a najednou bác ho! a celý systém jde do kolen.
O jedné takové podlé chybě nechme mluvit systémového programátora Gabriela Bookrushe:
To bylo někdy na přelomu 80. a 90. let, všechny user acceptance testy dopadly v pořádku, systém naběhl do produkce bez větších zádrhelů, během roku jsme ho začali hromadně prodávat a instalovat a vypadalo to na těžký úspěch. Až se najednou začaly množit zprávy od maďarských zákazníků, že jim systém vždycky každý čtvrtek v březnu sám od sebe spadne. Samozřejmě, když se s tímto objevila slečinka úřednice poprvé, všichni programátoři se mohli umlátit smíchy - hahaha, jasně, systém padá přesně každý čtvrtek v březnu, a jenom v Maďarsku, to ti tak věříme. Ale když začaly chodit zprávy z více míst, začali kluci stříhat ušima. Tohle nebylo jen tak. Prvně jsme měli podezření na virus. Co také jiného by mohlo dělat podobně nesmyslnou chybu? Ale scany žádné viry neodhalily a problém přetrvával i po kompletní reinstalaci systému. Tak nezbývalo nežli jít do té mravenčí práce zkoumání kódu. Bylo to k zbláznění, připadalo nám, že si z nás ten systém dělá nepokrytou srandu.
Ale nebudu vás dlouho napínat, nakonec jsme chybu odhalili. Na jednom místě programu se ukládalo do paměti datum v textové podobě. Místo samozřejmě bylo alokováno natolik velké, aby se do něj text vždy vešel. Kámen úrazu byl v tom, že pouze v češtině, v maďarské lokalizaci byl text delší. Problém se objevil první čtvrtek v březnu, kdy kombinace slov Márciusz a Csütörtök byla první, jejíž délka překročila velikost alokovaného pole v paměti a vzniklý memory leak celý systém shodil. A stejně tak další čtvrtky v březnu.
Ano, memory leaky při ukládání data jsme testovali, ale jen na české lokalizaci. User acceptance test u maďarských zákazníků také proběhl, ale jen začátkem roku, kdy se chyba nemohla projevit. Prostě na zabití.
Co na to říci? Snad jen to, že musíme doufat, že chyby v Matrixu nebudou žádnou překážkou v letošním boji. Snažíme se ze všech sil, aby to tak nenastalo, ale mějte prosím pochopení, když se občas něco někde objeví.