Top 10 Bugs in Computing History

The Top 10 bugs
www.cs4fn.org/bugs/
The USS Yorktown
heralded a new
generation of “smart”
ship. Its propulsion
system failed leaving it
"dead in the water” for
3 hours after it tried to
divide by zero crashing
every computer on the
ship’s network.
B
U
G
 
1
0
:
 
D
i
v
i
d
e
 
b
y
 
Z
e
r
o
Keep adding to an integer
variable and you run out of
bits. Suddenly you have a
small number not the bigger
one expected.
This was one bug in the
Therac-25 radiation therapy
machine that killed patients.
The 
Boeing 787 Dreamliner
had the same problem. Fly for
more than 248 days and it
would switch off.
CC BY-SA 3.0
B
U
G
 
9
:
 
A
r
i
t
h
m
e
t
i
c
 
O
v
e
r
f
l
o
w
AT&T lost $60 million the
day the phones died (all of
them). It was a result of
changing a few lines of
working code. Things
happened too fast for the
program. The telephone
switches reset but were
told they needed to reset
again before they’d
finished, … and so on.
B
U
G
 
8
:
 
T
i
m
i
n
g
 
p
r
o
b
l
e
m
s
Intel’s Pentium chip
turned out not to be able
to divide properly. It was
due to a wrong entry in a
lookup table.  Intel set
aside $475 million to
cover replacing the
flawed processors.
Some chips were turned
in to key rings.
Konstantin Lanzet 
CC BY-SA 3.0
B
U
G
 
6
.
9
9
9
9
9
9
8
9
:
W
r
o
n
g
 
n
u
m
b
e
r
s
 
i
n
 
a
 
l
o
o
k
u
p
 
t
a
b
l
e
The Mars Climate Orbiter
spent 10 months getting
to Mars …where it
promptly disintegrated. It
passed too close to the
planet’s atmosphere. The
programmers assumed
numbers were in pound-
force seconds when they
were actually in newton-
seconds.
B
U
G
 
6
:
 
W
r
o
n
g
 
u
n
i
t
s
The spinning pizza of death
is common. Your computer
claims to be working hard,
and puts up a progress
symbol like a spinning
wheel…forever. There are
lots of ways that this
happens. The simple version
is that the program has
entered a loop in a way that
means the test to continue is
never false.
B
U
G
 
5
:
 
N
o
n
-
t
e
r
m
i
n
a
t
i
n
g
 
l
o
o
p
The first Ariane 5
rocket exploded at a cost
of $500 million 40s after
lift-off. Despite $7 billion
spent on the rocket, the
program stored a 64 bit
floating point number in to
a variable that could only
hold a 16 bit integer.
DLR German Aerospace Center
 
CC BY 2.0
B
U
G
 
4
:
 
S
t
o
r
i
n
g
 
a
 
b
i
g
 
n
u
m
b
e
r
 
i
n
 
a
 
s
m
a
l
l
 
s
p
a
c
e
M
e
m
o
r
y
 
l
e
a
k
s
 
(
f
o
r
g
e
t
t
i
n
g
t
o
 
f
r
e
e
 
u
p
 
s
p
a
c
e
 
w
h
e
n
d
o
n
e
 
w
i
t
h
)
 
a
r
e
 
r
e
s
p
o
n
s
i
b
l
e
f
o
r
 
m
a
n
y
 
c
o
m
p
u
t
e
r
p
r
o
b
l
e
m
s
.
 
T
h
e
 
F
i
r
e
f
o
x
b
r
o
w
s
e
r
 
h
a
d
 
o
n
e
.
 
I
t
 
w
a
s
i
n
f
a
m
o
u
s
 
b
e
c
a
u
s
e
 
F
i
r
e
f
o
x
(
i
m
p
l
a
u
s
i
b
l
y
)
 
c
l
a
i
m
e
d
 
t
h
e
i
r
p
r
o
g
r
a
m
 
h
a
d
 
n
o
 
m
e
m
o
r
y
l
e
a
k
s
.
The Mozilla Foundation 
CC BY 3.0
B
U
G
 
3
:
 
M
e
m
o
r
y
 
l
e
a
k
T
o
n
y
 
H
o
a
r
e
 
w
h
o
i
n
v
e
n
t
e
d
 
t
h
e
 
n
u
l
l
 
p
o
i
n
t
e
r
(
a
 
p
o
i
n
t
e
r
 
t
h
a
t
 
p
o
i
n
t
s
n
o
w
h
e
r
e
)
 
c
a
l
l
e
d
 
i
t
 
h
i
s
b
i
l
l
i
o
n
-
d
o
l
l
a
r
 
m
i
s
t
a
k
e
b
e
c
a
u
s
e
 
p
r
o
g
r
a
m
m
e
r
s
s
t
r
u
g
g
l
e
 
t
o
 
c
o
p
e
 
w
i
t
h
 
i
t
.
N
u
l
l
 
p
o
i
n
t
e
r
 
b
u
g
s
 
c
r
a
s
h
c
o
m
p
u
t
e
r
s
,
 
g
i
v
e
 
h
a
c
k
e
r
s
w
a
y
s
 
i
n
 
a
n
d
 
g
e
n
e
r
a
l
l
y
c
a
u
s
e
 
c
h
a
o
s
.
Photograph by 
Rama
, Wikimedia Commons, Cc-by-sa-2.0-fr
B
U
G
 
2
:
 
F
o
l
l
o
w
i
n
g
 
a
 
n
u
l
l
p
o
i
n
t
e
r
T
h
e
 
M
o
r
r
i
s
 
W
o
r
m
,
 
a
n
e
a
r
l
y
 
I
n
t
e
r
n
e
t
 
w
o
r
m
,
c
a
m
e
 
c
l
o
s
e
 
t
o
 
s
h
u
t
t
i
n
g
d
o
w
n
 
t
h
e
 
I
n
t
e
r
n
e
t
.
 
I
t
 
u
s
e
d
a
 
b
u
f
f
e
r
 
o
v
e
r
f
l
o
w
 
b
u
g
 
i
n
n
e
t
w
o
r
k
 
s
o
f
t
w
a
r
e
 
t
o
 
m
o
v
e
f
r
o
m
 
c
o
m
p
u
t
e
r
 
t
o
c
o
m
p
u
t
e
r
 
s
h
u
t
t
i
n
g
 
t
h
e
m
d
o
w
n
.
Go Card USA
 from Boston, USA: 
CC BY-SA 2.0
B
U
G
 
1
:
 
B
u
f
f
e
r
 
o
v
e
r
f
l
o
w
Arrays in many languages start
from position 0. This means the
last position is one less than the
length of the array. Get it wrong…
as every novice programmer does
at some point …
 
and you run off
the end.
Oddly (in Europe), we have no
problem in a lift pressing 1 to go
to the second floor up.
In other situations, count from 0
and you do one too many things.
B
U
G
 
0
:
 
R
u
n
n
i
n
g
 
o
f
f
 
t
h
e
 
e
n
d
 
o
f
 
a
n
 
a
r
r
a
y
Download these slides from
teachinglondoncomputing.org/bugs/
Slide Note
Embed
Share

Explore the top 10 bugs in computing history, from divide by zero crashes to storing big numbers in small spaces. Learn about catastrophic software errors that led to costly failures in various systems, including smart ships, radiation therapy machines, and space missions.

  • Bugs
  • Computing
  • History
  • Software Errors

Uploaded on Sep 24, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. The Top 10 bugs www.cs4fn.org/bugs/

  2. BUG 10: Divide by Zero The USS Yorktown heralded a new generation of smart ship. Its propulsion system failed leaving it "dead in the water for 3 hours after it tried to divide by zero crashing every computer on the ship s network.

  3. BUG 9: Arithmetic Overflow Keep adding to an integer variable and you run out of bits. Suddenly you have a small number not the bigger one expected. This was one bug in the Therac-25 radiation therapy machine that killed patients. The Boeing 787 Dreamliner had the same problem. Fly for more than 248 days and it would switch off. CC BY-SA 3.0

  4. BUG 8: Timing problems AT&T lost $60 million the day the phones died (all of them). It was a result of changing a few lines of working code. Things happened too fast for the program. The telephone switches reset but were told they needed to reset again before they d finished, and so on.

  5. BUG 6.99999989: Wrong numbers in a lookup table Intel s Pentium chip turned out not to be able to divide properly. It was due to a wrong entry in a lookup table. Intel set aside $475 million to cover replacing the flawed processors. Some chips were turned in to key rings. Konstantin Lanzet CC BY-SA 3.0

  6. BUG 6: Wrong units The Mars Climate Orbiter spent 10 months getting to Mars where it promptly disintegrated. It passed too close to the planet s atmosphere. The programmers assumed numbers were in pound- force seconds when they were actually in newton- seconds.

  7. BUG 5: Non-terminating loop The spinning pizza of death is common. Your computer claims to be working hard, and puts up a progress symbol like a spinning wheel forever. There are lots of ways that this happens. The simple version is that the program has entered a loop in a way that means the test to continue is never false.

  8. BUG 4: Storing a big number in a small space The first Ariane 5 rocket exploded at a cost of $500 million 40s after lift-off. Despite $7 billion spent on the rocket, the program stored a 64 bit floating point number in to a variable that could only hold a 16 bit integer. DLR German Aerospace Center CC BY 2.0

  9. BUG 3: Memory leak Memory leaks (forgetting to free up space when done with) are responsible for many computer problems. The Firefox browser had one. It was infamous because Firefox (implausibly) claimed their program had no memory leaks. The Mozilla Foundation CC BY 3.0

  10. BUG 2: Following a null pointer Tony Hoare who invented the null pointer (a pointer that points nowhere) called it his billion-dollar mistake because programmers struggle to cope with it. Null pointer bugs crash computers, give hackers ways in and generally cause chaos. Photograph by Rama, Wikimedia Commons, Cc-by-sa-2.0-fr

  11. BUG 1: Buffer overflow The Morris Worm, an early Internet worm, came close to shutting down the Internet. It used a buffer overflow bug in network software to move from computer to computer shutting them down. Go Card USA from Boston, USA: CC BY-SA 2.0

  12. BUG 0: Running off the end of an array Arrays in many languages start from position 0. This means the last position is one less than the length of the array. Get it wrong as every novice programmer does at some point and you run off the end. Oddly (in Europe), we have no problem in a lift pressing 1 to go to the second floor up. In other situations, count from 0 and you do one too many things.

  13. Download these slides from teachinglondoncomputing.org/bugs/

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#