Niektoré pobavia, iné prekvapia, ďalšie zas rozčúlia. Ale tak už s to bugmi skrátka býva, pričom najlepšie pravdaže je, ak o nich len čítate a nedejú sa vám. Nedeľník TOUCHIT vážne i nevážne. Nezviazané IT témy na tisíc spôsobov.

Nech ste akýkoľvek expert a profík, nech máte akékoľvek veľké skúsenosti, vždy je priestor na to, aby vás niečo totálne prekvapilo, zamotalo a otvorilo vám od prekvapenia ústa.

Ale zase na druhú stranu, svet by bol nudný, ak by sme vyčerpali všetky záhady a všetko by bolo ihneď jasné. Veď predsa nájsť tú správnu príčinu vie byť poradne stimulujúce aj zábavné, aj keď to často trvá roky a v priebehu času vás to frustruje. To finálne rozlúsknutie vie byť poriadne sladké a upokojujúce.

Elektronický pavúk kondenzátorus rezistorus pracuje na základnej doske /Foto: LdF/

Neplatí to pravdaže len pre počítače. V aute, ktoré som používal bez problémov niekoľko rokov, sa mi z ničoho nič začalo z ľavého reproduktoru ozývať niečo, čo sa nedá popísať lepšie ako „prdenie“. Neobjavovalo sa to vždy. Spúšťalo sa len pri najviac „basových“ častiach pesničiek, takže v mnohých sa to ani neprejavovalo. Človeka to ale rozčuľuje, pretože to kazí zážitok, tak som nakoniec nechal v autoservise vymeniť reproduktory za nové a lepšie. Poznáte to. Keď už tak už.

No ale, na moje prekvapenie prdenie nezmizlo. Myslel som si, že bude nejaký problém v elektroinštalácii, alebo uvoľnenej skrutke či nejakom výčnelku vo vnútri palubnej dosky, ale nech som kontroloval čokoľvek a akokoľvek, nič som nenašiel.

Trvalo to rok a pri každej jazde som myslel na to, čo to do pekla môže byť. Jedného dňa som dával dole zo skla diaľničnú známku (vtedy ešte neelektronickú) a pár kúskov mi zapadlo do miesta, kde palubná doska zabieha spolu so sklom dolu do útrob auta. Vyšpáraval som ich prstami a z ničoho nič som na slepo nahmatal niečo väčšie. Vytiahol som to a zistil som, že ide asi o rok starý malý parkovací lístok.

Bol zo silnejšieho papieru a od napätia prehnutý do písmena U, pričom pri dostatočných basoch sa roztriasol a „prdel“ za horizontom narážaním svojej hrany do predného skla.

HODINY PRÁVE UKAZUJÚ, ŽE JE ČAS NA TVOJ BUG

Začnime možno trochu zvláštne dvojicou bugov súčasne.

Oba sa udiali v prvej dekáde 21. storočia Mattovi Williamsovi. Ten pracoval na desktope vo svojej kancelárii, pričom si všimol, že kurzor myši začne nezvyčajne a náhodne poskakovať, keď sa dostane na nejaké špecifické miesto na Pracovnej ploche Windows.

Vyzeralo to zvláštne, pričom paradoxné bolo, že sa to prejavovalo vždy len na pár minút a potom z ničoho nič bolo všetko zas v poriadku.

Matt skúšal myš čistiť, dával ju na rôzne časti stola, vymenil podložku, ale skoro každý deň sa toto nezvyčajné správanie vždy na pár minút objavilo, okolo druhej hodiny poobede. Myš skrátka hodiny fungovala normálne, potom na pár minút začala na nejakej časti Pracovnej plochy alebo programu poskakovať a zrazu to prestalo a potom celé hodiny zas fungovala normálne, až do nasledujúceho dňa, kedy sa to opakovalo.

Matt nakoniec odhalil príčinu, ale než ju prezradíme, pozrime sa ešte na druhý totožný hardvérový bug, ktorý zažil o pár rokov neskôr a vďaka skúsenosti s predošlým sa mu ho podarilo odhaliť. Matt sa presťahoval z New Yorku do Kalifornie, pričom si kupoval auto. Narazil pri tom na inzerát na SAAB 900 SPG, ktoré sa mu zapáčilo, pričom pôvodný majiteľ ho upozornil na to, že auto funguje perfektne, ale z nejakého dôvodu sa z CD prehrávača Clarion niekedy náhodne vysunie CD bez príčiny. Že vraj tú chybu pôvodne reklamoval a v servise mu prehrávač vymenili za nový totožný, ale ten sa správa rovnako.

Ako Matt začal na aute jazdiť, po pár mesiacoch si uvedomil, že náhodné vysunutie CD z prehrávača sa nikdy neobjaví keď ide do práce. Objaví sa skoro vždy len keď ide z práce a to vždy na jednej konkrétnej ulici, pri zatočení na jednej konkrétnej križovatke.

ZOBRAZIŤ ODPOVEĎ:

V oboch prípadoch bolo kurióznou príčinou bugu Slnko, respektíve slnečné lúče. Myš mala medzi pravým a ľavým tlačidlom štrbinu, ktorou sa svetlo dostávalo do jej útrob. V špecifickej časti dňa sa pri tom Slnko dostalo do polohy, kedy cez okno lúče prenikali štrbinou presne tak, že osvetľovali jej optický senzor. Senzor, ktorý je štandardne zatemnený a zakrytý celým telom myši, tak bol osvetlený priamo z vnútra rovno cez ňu. Nefungoval tak dobre a kurzor začal v konkrétnej časti dňa poskakovať (akoby na podobnom mieste displeja), vždy keď bol uhol Slnka a myši „správny“.

Rovnaká vec sa stala aj štrbinovému CD prehrávaču. Auto SAAB 900 SPG malo sklenené strešné okno. Ako náhle ste s ním šli do konkrétneho smeru, v konkrétnu časť dňa, slnečné lúče sa cez strešné okno dostali cez štrbinu pre média na dno CD prehrávača, kde sa nachádzal optický senzor. Senzor prestal byť schopný čítať a detegovať CD, zasunuté médium sa mu javilo ako nečitateľné, takže prehrávač ho automaticky vysunul.

Kuriózny hardvérový bug, ktorý sa prejavil jednému človeku na dvoch rozdielnych zariadeniach.

NEJAKÁ NEVIDITEĽNÁ RUKA NÁM REŠTARTUJE POČÍTAČ

O tento kuriózny bug sa podelil Larry Osterman, jeden z vývojárov Microsoftu, pričom sa udial už na konci 80. rokov minulého storočia.

V tej dobe spoločnosť ICL chystala na trh osobný počítač ICL PWS-400, ktorý mal byť priamym konkurentom IBM PC. Osterman bol súčasťou 5 členného tímu (dvaja z Microsoftu, traja z ICL), ktorý mal za úlohu portovať operačný systém MS-DOS 4.1 a následne aj Windows 2.0 na daný hardvér.

Pri porte sa počítač testoval najrôznejšími programami, pričom Osterman použil aj hru, ktorú mu doniesla jeho dcérka zo školy. Na to o akú hru konkrétne šlo si už síce nespomenul, avšak zaujímavé bolo predovšetkým to, že vždy keď sa v hre dostal na jedno konkrétne miesto, počítač sa reštartoval.

Počítač kvôli tomu zapojili do emulátora obvodov, pričom monitorovali celý tok dát prúdiaci do CPU a z CPU, aby odhalili aká softvérová chyba to spôsobuje. Na svoje prekvapenie však zistili, že o softvér vôbec nejde, pretože operačný systém, respektíve počítač zaznamenáva regulárny hardvérový signál na reset. Skrátka akoby presne v tej časti hry niekto stlačil tlačidlo reštartovania na skrinke.

Počítač tak odniesli spolu s danou hrou k  vývojárom hardvéru. Tí celú záležitosť zmätene skúmali, pričom po niekoľkých dňoch testovania prišli na to, že…

ZOBRAZIŤ ODPOVEĎ:

Príčinou bugu bolo špecifické rozloženie plošných spojov na základnej doske. Ak sa na základnú dosku alebo akékoľvek iné PCB pozriete, jasne rozoznáte jednotlivé elektrické vodiče, ktoré vytvárajú cestičky medzi jednotlivými komponentmi a súčiastkami.

Nečakaným problémom dizajnu počítača PWS-400 bolo, že maličký PC speaker, ktorý bol integrovaný na základnej doske a bol schopný vydávať jednoduché tóny, mal plošný spoj vedený hneď vedľa plošného spoja pre resetovací signál (ktorý vedie prijatý signál z napojeného káblu skrinky).

Keď Osterman danú hru hral a dostal sa na dané kritické miesto, hra prehrávala špecifickú melódiu, ktorá si vyžadovala elektrické signály pre reproduktor vo vysokej frekvencii. Ako tieto signály, ktoré putovali plošným spojom k tomu maličkému „pípaciemu“ reproduktoru, dokázali vďaka svojej frekvencii zvýšiť napätie v blízkom susednom vodiči a mimovoľne tak odoslať ozajstný signál na reštart, tak ako to robilo tlačidlo na skrinke.

KOĽKO MÁME EŠTE POKUSOV NA DIAGNOSTIKU?

Nasledujúci zvláštny bug zažil a diagnostikoval vývojár Microsoftu Adi Oltean. Odohral sa v čase, kedy sa dostával na trh Windows 2000, ktorý sa pýšil novou pokročilou a prepracovanou funkciu Plug and Play (PnP) a novej správe napájania. To, že tento operačný systém vychádzal z vetvy NT (odlišnej od Windows 1.0 až Windows 98 a ME), ktorá sa následne stala stavebným kameňom všetkým nasledujúcich Windows, znamenalo značné zdržanie jeho vydania.

Obsahoval totiž výrazné zmeny v rámci fungovania ovládačov a práve PnP funkcie (pripájanie hardvéru za jazdy operačného systému) a ovládania napájania z hľadiska uspávania a prebúdzania jednotlivých komponentov, s čím pravdaže mali problém mnohé ovládače tretích strán a dlho trvalo, než boli v dostatočnom počte a kvalite dokončené (mimochodom, to bol aj dôvod prečo sa výrazne presadil až nasledujúci Windows XP, pričom podobná vec sa stala aj s výraznou zmenou ovládačov v systémoch Windows Vista, kedy sa takisto presadil výrazne až nasledujúci systém Windows 7).

Bug sa týkal jedného špecifického ovládača pre istotu nemenovanej firmy a jedného typu nemenovaných základných dosiek. Objavoval sa vždy, keď ste počítač namiesto vypnutia uspali a následne ho prebudili. Počítač sa síce prebudiť zo spánku pokúsil, ale nespustil sa.

Bugy, ktoré sa dajú opakovane a jednoducho vyvolať na počkanie kedykoľvek  sú pri diagnostike veľmi nápomocné. Aspoň vo väčšine prípadov.

Problémom v tomto prípade bolo, že pri pokuse o prebudenie sa začalo zo základnej dosky dymiť. A to neprebudenie počítača sa prejavilo skrátka tak, že doska zhorela. A dedukovať z takto vyradeného hardvéru čo sa presne stalo a prečo nie je jednoduché, hlavne ak sa to udialo na príkaz ovládača.

Diagnostika celého problému teda pozostávala z toho, že si tím Microsoftu nechal doviesť paletu daných dosiek a prebúdzal a pálil ich až dovtedy, dokým príčinu problému neodhalil.

ZOBRAZIŤ ODPOVEĎ:

Pri diagnostike sa ukázalo, že všetko bolo nastavené tak, aby čipová súprava pred svojim uspaním odoslala ovládaču aktuálne napätia jednotlivých prvkov základnej dosky, pričom tieto čísla ovládač dostal a uložil. Následne pri prebudení podľa týchto hodnôt mala doska napätia obnoviť tak, že sa hodnoty čipovej súprave odoslali nazad a tá ich nastavila.

Aj to tak fungovalo. Čipová súprava prijaté hodnoty správne nastavila a dosku a samú seba upálila za jazdy, pretože napätia boli priveľké. To s čím sa nepočítalo bolo, že čipová súprava tieto hodnoty pri vypínaní merala a odosielala nesprávne, čo v základe nevadilo, pretože mali len informačný charakter.

Teda až do momentu, ako sa tvorcovia ovládača rozhodli tieto hodnoty použiť. Bug v meraní a reporte, ale už nie v nastavovaní týchto hodnôt následne znamenal kúdoly dymu v testovacom laboratóriu.

Niekedy je lepšie doskám nepomáhať a nechať nech sa spustia sami ako vedia…

ENERGIA ČERPANÁ Z INEJ DIMENZIE

Tento kuriózny bug som zažil a diagnostikoval ja sám, niekedy pred 15 rokmi, v čase kedy som ešte ako mladík živil diagnostikou, stavbou a servisom počítačov. Pred piatimi rokmi som ho už v jednom Nedeľníku spomenul (Moje strašidelné príhody zo servisu počítačov).

Prišiel som do práce nejako krátko po 11 hodine a pozdravil kolegu, ktorý práve položil na stôl otvorený desktop. Pripojil k nemu klávesnicu, myš a monitor, ale nezapínal ho a rovno sa pobral na obed, nechávajúc ho pre mňa.

Spýtal som sa ho, čo s počítačom je, ale odpoveďou mi bola len klasická diagnóza, s ktorou dorazí do servisu väčšina počítačov – „NEFUNGUJE“.

Za kolegom následne vrzli dvere a ja som len mykol plecami, zavesil si bundu na vešiak a počítač bez váhania zapol. Ventilátor chladiča procesoru sa síce rozbehol, ale pípnutie úvodného POST testu sa neozvalo a neprebudil sa ani monitor.

Toto správanie obvykle súvisí s pokazenou napájacou sústavou základnej dosky, alebo chybným zdrojom, ktorý počítaču nedodáva dostatok energie. Vhodným postupom je pripojiť iný zdroj, čím medzi oboma stavmi rýchlo rozlíšite.

Načiahol som sa teda dozadu skrinky a prepol som sieťový vypínač, v snahe počítač vypnúť, aby som jeho zdrojovú kabeláž mohol odpojiť. Na moje prekvapenie sa však nič nestalo. Počítač naďalej ticho bzučal roztočeným ventilátorom.

Naklonil som sa teda dozadu skrinky, aby som z neho vytiahol napájací kábel, avšak na moje veľké prekvapenie som zbadal, že jeho konektor je prázdny.

Ako idiot som zobral koncovku sieťového kábla, zapojenú do elektriky, ale už nie už do PC a neveriacky sa na ňu pozeral. WTF? Opäť som sa pozrel do útrob počítača a sledoval roztočený ventilátor procesoru. Všimol som si pri tom, že na zdroji sa ventilátor netočí a podľa priloženého ucha k disku som usúdil, že sa nerozbehol ani on.

Napadlo ma, že energiu mu posiela zdroj, ktorého kondenzátory sú stále nabité. Ide o pomerne normálny jav. Ak odpojíte zdroj od siete a následne počítač zapnete, zbadáte, že nazhromaždená energia v kondenzátoroch ešte na zlomok sekundy počítač rozpohybuje (napr. lopatky ventilátora sa mierne pohnú).

Ventilátor sa síce točil už dobrú minútu, čo bolo čudesné, no ale očividne zdroj musel mať nejaký vážny problém a nejako to všetko naakmuloval. Načiahol som sa teda ku jeho dvom interným konektorom, ktoré napájajú dosku a oba som ich odpojil. Vetrák CPU sa stále točil…

Končila všetka sranda. Na neposlušný ventilátor nedodržujúci fyzikálne zákony som pritlačil v strede jeho osi prstom a zatlačil ho dnu do ložiska. Lopatky sa konečne zastavili a rozhostilo sa ticho. Tak, a je to vybavené! Stisk som následne pomaličky povolil a neveriacky sledoval, ako sa chladič znovu rezko roztočil.

ZOBRAZIŤ ODPOVEĎ:

„Čo to do pekla čerpá elektrinu z nejakej inej dimenzie?“ Rozohnil som sa. Načiahol som sa dozadu skrinky ku káblom myši, klávesnice a monitoru a všetky ich v zlosti z panelu dosky vytrhol. Ventilátor okamžite zastal.

Realita ma konečne dobehla. To musí byť ono. Vzal som všetky tri káble do ruky a pomaly ich zapájal nazad. Monitor do výstupu grafickej karty – NIČ. USB konektor klávesnice – NIČ. USB konektor myši – ventilátor CPU sa rozbehol.

Znovu otváram ústa. Tentoraz sa však na kábel pozerám pozornejšie a zisťujem, že k myši nevedie. Ten ozajstný ležal pod zadným panelom na stole. Kolega omylom zapojil iný USB kábel, vedúci niekam inam. OK, ale kam?

Nahmatávam ho a vyťahujem z pomedzi dvoch stolov. Je niekoľko metrov dlhý a vedie k obyčajnému domácemu multifunkčnému zariadeniu, ktoré takisto zrejme niekto doniesol na servis. Všímam si, že táto tlačiareň je zapnutá do elektriky a jej displej svieti.

Jej pripojenie k počítaču USB káblom je pravdaže úplne normálna vec. Takto ju pripájate, aby ste so zariadením mohli skenovať a tlačiť. Pomaly sa do mňa ale začala vkrádať realizácia. Problémom očividne bolo, že základná doska počítača mala poruchu v súvislosti so svojou napájacou sústavou.

Tlačiareň môže fungovať v základe ako USB Slave (otrok), ktorý plní príkazy zariadenia na opačnom konci káblu, teda počítača, ktorý plní rolu USB Master (pán). Tento režim však môže tlačiareň aj otočiť. Má totiž USB konektory, do ktorých sa dá pripojiť napríklad USB kľúč, z ktorého sa dá rovno tlačiť a v takomto prípade je tlačiareň práve Master a USB kľúč podriadený Slave.

To čo sa stalo bolo, že po pripojení USB konektoru do vypnutého počítača tlačiareň nedostala informáciu o tom, že na druhej strane je PC a považovala ho za perifériu, teda napríklad USB kľúč. V kabeláži tak vyslala energiu pre napájanie pripojeného zariadenia (napr. USB kľúča).

Už to bolo samo o sebe veľmi zvláštne. Avšak všetko sa to skombinovala s pokazenou základnou doskou, ktorej chybná napájacia sústava toto malé napätie vpustila do svojich obvodov a po zapnutí štartovacieho tlačidla ho nasmerovala do konektoru pre chladič procesora, ktorý sa roztočil.

Nádherný bug.

Nedeľník TOUCHIT hľadajte na našom webe ako inak než v nedeľu. Ak ste predchádzajúce zmeškali, nájdete ich všetky pod rovnomenným kľúčovým slovom.

Značky:

František Urban

František Urban
Zameriavam sa najmä na prehľadové a analytické články z oblasti najrôznejších technológií a ich vývoja. Nájdete ma takisto pri diagnostike HW a SW problémov.