Merkelige insekter og historiene bak dem
Hvis du søker på nettet etter merkelige, fantastiske og morsomme insekter, vil du finne mange interessante historier.
I denne artikkelen vil vi oppsummere noen kjente feiltilfeller – fra morsomme til svært ødeleggende.
Oppdagelsen og løsningen er for øvrig ofte like interessant som selve feilen.
E-postfeilen på 500 mil
En av de mest kuriøse feilene ble oppdaget i et universitets e-postsystem.
En professor la merke til at e-poster til mottakere innenfor en radius på 800 kilometer ble levert uten problemer, mens e-poster til mottakere lenger unna aldri kom frem.
Hvordan kunne det ha seg?
Etter mye hodebry og gjennomgang av koden viste det seg at feilen lå i en timeout-parameter som var basert på en tidsperiode som tillot lyssignaler å tilbakelegge en viss avstand.
Siden utviklerne hadde brukt lysets hastighet i beregningen, resulterte dette i en svært reell, om enn utilsiktet, «horisont» på 500 miles for e-postkommunikasjon.
Etter å ha justert timeout-parameteren ble feilen rettet.
Denne feilen er for øvrig også ansvarlig for navnet på et nyhetsbrev og en blogg som bare handler om absurde programvarefeil.
Nyhetsbrevet, som er vel verdt å lese, heter 500 Mile Email og ble grunnlagt av Harley Hicks.
Mars Climate Orbiter
Mars Climate Orbiter var en NASA-sonde som ble sendt til Mars som en del av Discovery-programmet i 1999, men som til slutt brant opp på grunn av en programvarefeil som var like berømt som den var enkel.
Årsaken til det som på den tiden var et høyteknologisk system, var en enkel forveksling av enheter: Mens navigasjonsteamet utførte beregningene i metriske enheter, brukte orbiterens programvare angloamerikanske måleenheter.
Den brukte derfor enheter som pund (for vekt), tommer og fot (for lengde) og gallon (for volum), som skilte seg fra metriske enheter som kilogram, meter og liter.
Dette avviket førte til at romfergen fløy mye nærmere Mars enn planlagt, og til slutt brant den opp i Mars’ atmosfære.
Hva kan vi lære av dette?
Hendelsen viser oss hvor viktig det er å bli enige om felles standarder og kommunikasjonsformer i programvareutvikling, og å følge de avtalte standardene konsekvent.
Pentium FDIV-feilen
Et annet svært kjent eksempel er FDIV-feilen i Intels Pentium-prosessorer på midten av 1990-tallet.
Denne feilen i operasjonen for flytende kommadivisjon førte til at prosessoren returnerte feil resultat for visse divisjoner.
Selv om feilen bare oppstod under svært spesifikke forhold, og de fleste brukere sannsynligvis aldri ville ha lagt merke til den, førte den offentlige oppmerksomheten den fikk til slutt til at Intel lanserte en erstatningskampanje.
Denne hendelsen viste hvor viktig det er med nøyaktighet i maskinvareutviklingen, og at allmennheten ble stadig mer bevisst på tekniske detaljer.
Feilen er for øvrig så velkjent at det finnes en egen Wikipedia-artikkel om den, som du kan lese her.
Y2K-feilen
En av de mest berømte og potensielt katastrofale feilene i teknologihistorien var Y2K-feilen, også kjent som år 2000-problemet.
Feilen skyldtes at årstallene i datasystemer ble kodet med bare to sifre (f.eks. «99» for 1999) for å spare minneplass.
Dette førte til en utbredt frykt for at datasystemene ved årsskiftet 1999-2000 ville tolke årstallet «00» som 1900 i stedet for 2000, noe som kunne føre til feilberegninger og feil i alt fra banksystemer til kontrollsystemer for kraftverk.
Milliarder ble investert verden over for å løse problemet ved å oppdatere programvare og teste systemer for å sikre at de kunne håndtere det nye årtusenet på riktig måte.
Takket være denne innsatsen uteble de fryktede katastrofale effektene i stor grad, og Y2K-feilen fungerer i dag som en advarende historie om hvor viktig det er med god planlegging i programvareutviklingen.
Heartbleed-feilen
Heartbleed var en alvorlig sikkerhetsfeil i programvarebiblioteket OpenSSL som ble oppdaget i april 2014.
OpenSSL er mye brukt til å implementere SSL- og TLS-protokollene for Internett-kommunikasjon, og tilbyr kryptering for en rekke tjenester for å beskytte sensitive data som passord og personlig informasjon.
Feilen gjorde det mulig for angripere å lese minnet på webservere og dermed få tilgang til en stor mengde sensitive og konfidensielle data uten å etterlate seg spor.
Det bekymringsfulle i dette tilfellet var ikke bare hvor enkelt det var å utnytte feilen, men også det faktum at den forble fullstendig uoppdaget i rundt to år.
Heartbleed førte til økte investeringer i sikkerheten til programvare med åpen kildekode og en bedre forståelse av hvor viktig sikkerhet er i den digitale verden.
Konklusjon
Disse anekdotene viser at feil i programvareutvikling noen ganger kan ta bisarre former.
Dette bør minne oss om at til tross for alle teknologiske fremskritt er det fortsatt rom for (menneskeskapte) feil, slurv og misforståelser som kan få vidtrekkende konsekvenser.
Historiene om disse feilene er ikke bare underholdende, men tjener også som verdifull lærdom om hvor viktig det er å utvise aktsomhet og foreta en grundig gjennomgang av arbeidsprodukter før de lanseres (dvs. først og fremst skikkelig programvaretesting).