Fundamentals 6 min read

Uncovering Bohrbug, Heisenbug, Mandelbug & Schroedinbug: Software Bugs Explained

Software bugs are often whimsically named after famous scientists, with Bohrbug representing reproducible errors, Heisenbug describing elusive issues that disappear under observation, Mandelbug denoting complex, chaotic faults, and Schroedinbug reflecting paradoxical bugs that seem both present and absent, each illustrating distinct debugging challenges.

Baidu Tech Salon
Baidu Tech Salon
Baidu Tech Salon
Uncovering Bohrbug, Heisenbug, Mandelbug & Schroedinbug: Software Bugs Explained

American computer scientist and Turing Award laureate Jim Gray introduced the concept of naming bug types after famous scientists in his seminal paper "Why do computers stop and what can be done about it?" This article surveys the most well‑known of those bug categories.

Bohrbug

Bohrbug refers to bugs that are reliably reproducible under the same conditions, much like the predictable electron orbits in Niels Bohr's atomic model. If a program crashes with a null‑pointer exception, feeding the identical input will trigger the same crash each time.

Portrait of Jim Gray
Portrait of Jim Gray

Heisenbug

Heisenbug describes bugs that vanish when you try to observe or debug them, echoing Werner Heisenberg's uncertainty principle. An example is a bug caused by an uninitialized variable that triggers a crash; once a debugger initializes the variable to zero, the crash disappears.

Portrait of Werner Heisenberg
Portrait of Werner Heisenberg

Mandelbug

Mandelbug denotes bugs whose causes are so intricate that their behavior appears chaotic and non‑reproducible, analogous to the fractal patterns studied by Benoit Mandelbrot. Complex interactions such as task‑scheduling anomalies in operating systems often fall into this category.

Portrait of Benoit Mandelbrot
Portrait of Benoit Mandelbrot

Schroedinbug

Schroedinbug is a paradoxical bug that seems both present and absent, reminiscent of Schrödinger's cat thought experiment. The program may run fine until you inspect the code, at which point the bug manifests and causes a crash, illustrating the superposition of states in software.

Portrait of Erwin Schrödinger
Portrait of Erwin Schrödinger

Other less‑common bug categories, such as aging‑related bugs that appear only after a program has run for an extended period, also exist but are not covered in detail here.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Debuggingprogramming fundamentalssoftware bugsbohrbugheisenbugmandelbugschroedinbug
Baidu Tech Salon
Written by

Baidu Tech Salon

Baidu Tech Salon, organized by Baidu's Technology Management Department, is a monthly offline event that shares cutting‑edge tech trends from Baidu and the industry, providing a free platform for mid‑to‑senior engineers to exchange ideas.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.