Jump to content

Talk:Heisenbug

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Oppenheimerbugs

[edit]

Maybe there is also a new type called Oppenheimerbugs. They look harmless at the beginning but after deployment they have catastrophic effects. //mats@henricson.se —Preceding unsigned comment added by 194.237.142.13 (talkcontribs)

Hindenbugs

[edit]

This edit added a new type: "hindenbug" but it reads like a hoax, or at best case, Original Research. I reverted it, feel free to revert it back, if there is some documented non-facetious usage out there. Segv11 (talk/contribs) 09:09, 27 January 2006 (UTC)[reply]

207.102.59.149 17:49, 7 June 2006 (UTC) Fermat-bugs 207.102.59.149 I added this section. It wasn't original with me but the chap who thought of it is not, to my knowledge, attached to it excessively. I mentioned the four classes of bug (Bohr-bug, Heisen-bug, Schröde-bug and Mandel-bug) to a co-worker (Don Lekei, formerly deskpotato.ca) and he blurted the Fermat bug in a laugh as a follow-on. Arthur N. Klassen ansak.blogspot.com etc...[reply]

Fermat-Bug?

[edit]

Google doesn't pick anything up on it besides this page. Seems to me like original research. Poorly written original research. --Angry Lawyer 09:49, 19 June 2006 (UTC)[reply]

Removing Alksub 05:04, 21 June 2006 (UTC)[reply]

Anti-Heisenbugs?

[edit]

Is there a name for bugs that only show up in debug mode while you're trying to fix another bug? Arandomrabbit 05:40, 19 August 2006 (UTC)[reply]

I found a different type of Anti-Heisenbug - it was broken; I tracked down the code in question, saw that the code was right, and it started working (even on a different machine) 219.89.116.175 (talk) Jaybee- —Preceding undated comment added 19:28, 29 November 2011 (UTC).[reply]

Phase of the moon bugs

[edit]

I strongly disagree with the statement that Phase of the moon bugs are rare. One from my own experience: I wrote a shell script which used a date in a filename. As I usually sleep in the morning, I didn't notice that before 10am the script generated a blank in the filename, causing the script to fail. UNSIGNED.

Many JavaScripters use new Date() to generate a Date Object, then set various "parts" of the date/time in turn. That has an interesting effect if one tries to go from a day at the end of a long month into a short month. Using setFullYear(Y, M, D) would fix it. However, if the current actual time is not wanted, it is both safer and faster to use new Date(0). 82.163.24.100 (talk) 23:16, 22 January 2010 (UTC)[reply]
A difficult to diagnose 'phase of moon' bug I encountered in the late 1970's: a new release of operating system would only work on our particular computer on even-numbered years, but it worked on supposedly identical models elsewhere. A colleague examined various operating system traces and after some 3 months determined that there was a missing interrupt/trap. Using multi-level virtual machine facilities I devised a short assembler program which exhibited the fault. The engineers then quickly determined that there was a wire missing from the computer backplane. The relation with the date was simple in retrospect: the year number happened to be in a register when the instruction to cause the trap was executed, but due to the missing wire, the low order bit (even/odd) of the register controlled whether or not the trap actually occurred. Murray Langton (talk) 12:30, 6 May 2010 (UTC)[reply]

Bohrbug

[edit]

Some of the statements about bohrbug ("They may never be fixed, but if the operation is retried or the system is rebooted, the bugs may not manifest themselves as failures. Manifestation is dependent on the software reaching very rare states.") in the previous version were inconsistent with the generally definition contained in the jargon file and the Free On-line Dictionary of Computing ("manifests reliably under a possibly unknown but well-defined set of conditions"). I have removed these statements, and I have added parts of the definition from the Free On-line Dictionary of Computing instead.

A Bohr Bug isn't really an unusual bug at all. "If i do this, then this, and then I do this, the program always crashes" is a Bohr Bug. Most bugs are in fact Bohr Bugs. Sometimes determining why the specific set of circumstances always causes the bug to manifest is non trivial, though. 99.99.70.93 (talk) 07:14, 4 December 2010 (UTC)[reply]

Schroedinbugs

[edit]

I think that the example used (the one about the database table size) really does not match the scenario of a schroedinbug. These are of such mystery that such a simple example would not be sufficiently descriptive. - Bevo 16:32, 4 July 2007 (UTC)[reply]

Schroedinbugs don't need to be complicated, they just need to be an error that seems to spontaneously occur. If that error occured during runtime to a user who was unfamiliar with the program, it would certainly seem to be completely random. I agree that the given example is too simple to often fall into this category, but it's an easy to understand example, which is the point. Prgrmr@wrk 18:24, 5 July 2007 (UTC)[reply]
Schroedinbugs occur permanently for all users after a programmer looks at the source code and realizes that the program is flawed. They are so mysterious that I'm wondering if anyone reading this has actually had experience with one. I have not or I'd provide a better example. Is this a real world thing, or just someone's joke? I know someone put it into the infamous Jargon file, but so far, that is the only source for that term I can find. I'd like it to stay in the article, but the example in there is not a schroedinbug. - Bevo 18:44, 5 July 2007 (UTC)[reply]
The kind of bug you just described would be considered "magical", and I've never heard of that sort of thing. I have had mysterious errors occur for seemingly no reason, and then discovered that the source code should not have worked at all. To me, this is close enough to any reasonable definition of Schroedinbug. There's no actual possible way for a program to stop working simply because the programmer looks at the code. Any situation where that seems to happen is probably due to the compiler having neglected to recompile the source code for that module promptly, and only recompiling the file when the programmer opens it up to look.
Another way to look at it is that it's a type of error which is prevented from occuring by sheer dumb luck (accidently zeroed memory when it was unintentionally left randomized at allocation), until circumstances (database records, users connected, bytes allocated etc) change in a way that happens to break it completely. At that point, somebody looks at the code and wonders how in heck it ever worked at all. Prgrmr@wrk 18:53, 6 July 2007 (UTC)[reply]
I'd say that calling a bug a Schroedinbug is also calling it "magical" - and is therefore generally done facetiously. We recently had one here at work(and I reffed the hardware engineers to this page); I suspect it was due to state held by Windows, and that the timing of me reading the code and them rebooting was coincidental... but I couldn't prove it. Darekun 00:24, 23 October 2007 (UTC)[reply]

I reworded the paragraph on schroedinbugs, to improve sentence flow a bit. I also removed the bit about superstition because it seemed like an assumption to me. Describing a bug using this word is usually done out of frustration or humor, not out of fear or belief in mystical forces. Prgrmr@wrk 03:24, 15 July 2007 (UTC)[reply]

Shroedingbugs could be also explained psychologically. When the bug manifestation is subtle or it is limited to a less common case, nobody may notice it for long, but when somebody does, everybody notices it since they already know it is there. It would deserve a reference to the general psychological effect (which I don't know how it is called) to be put in the article. 194.138.12.146 (talk) 08:24, 17 August 2009 (UTC)[reply]

Is there a name for the "Anti-" form of the Schroedinbug? This is the bug that keeps showing up annoying the hell out of the developers until they simply read and step through every line of code only to realize there is simply nothing wrong and this bug should be impossible...upon which the bug simply disappears and never shows up again? My testers run into those a lot... Acroyear (talk) 16:53, 28 October 2008 (UTC)[reply]

Notability

[edit]

Heisenbug is notable, the rest are not. Here are some stats to back this up -

The same queries, but now excluding Wikipedia -

Given the above, the Mandelbug and Bohrbug sections need to be substantially trimmed down due to the lack of notability. The same goes for Schroedinbug, but due to WP:NOR. All in all, Heisenbug is the original geeky subject, that dates back to 1987. The rest are trivial derivatives of an unclear origin and little notability. As such their extended descriptions do not belong to WP. Alex Pankratov 05:43, 23 August 2007 (UTC)[reply]

Mandelbugs

[edit]

The paragraph mentioning the Turing test is entirely missing the point; calling a bug a Mandelbug asserts that it could be debugged as a Bohr bug, but that doing so would require excessive effort, for example the FOLDOC mention of seventh-level damage. However, I suspect both arguments are OR, and the paragraph should simply be deleted.

Oops, forgot to sign that. Darekun 00:34, 23 October 2007 (UTC)[reply]

Heap corruption is a Mandelbug: when an operation corrupts the heap (a Bohr bug if it crashes immediately) the program will crash somewhere else. 12.117.131.10 (talk) 21:57, 4 December 2007 (UTC)JH[reply]

True, and it's also a Mandelbug hard to distinguish from a truly chaotic bug. Hm, it seems the main reason for assuming a bug isn't truly chaotic is that a truly chaotic bug would be implausible, unless it were derived from an external source of randomness(like the statistical bug example), so distinguishing is largely irrelevant. I'm deleting the paragraph in question. Darekun (talk) 01:55, 11 April 2008 (UTC)[reply]

"According to the above definition, mandelbugs are bohrbugs. Heisenbug and bohrbug are considered antonyms. Moreover, it is claimed that all heisenbugs are mandelbugs."

M is B, H is not B, H is M. Brilliant. 99.199.110.202 (talk) 21:37, 25 October 2009 (UTC)[reply]

As i understand it, calling a bug a mandelbug implies one of two things. One is the speaker believes the bug can be isolated with debugging, but hasn't figured out how to do so yet. The other is that the results are very chaotic and strange, even though they are repeatable. Say we have a program, and it has 50 different functions. If you use any of them once then quit the program it works fine. If you used function a, then b, then c, a and b work fine, but c crashes. If you use C, B, then A, B and C work fine, but a gives the wrong answer. If it's A C B A, then everything is fine. This would be considered a Mandelbug. It's a Bohr Bug because it's repeatable, yet it still makes no sense whatsoever. 99.99.70.93 (talk) 07:38, 4 December 2010 (UTC)[reply]

Copyright?

[edit]

I notice that this article seems to be verbatim from the relevant sections of the Jargon Files. Perhaps a rewrite is in order? Dazcha 09:29, 4 December 2007 (UTC)[reply]

Actually, it's GFDLed via FOLDOC at least, so no worries there. (Also, I think the Jargon File is open in its own right.) Darekun (talk) 01:43, 11 April 2008 (UTC)[reply]

merged from ghost in the code

[edit]

I've merged Ghosts in the code here. I'm not sure there's any difference between this and Bohrbug. So perhaps the two sections should be merged. Pichpich (talk) 17:28, 15 February 2008 (UTC)[reply]

Merge proposal

[edit]
The following discussion is closed. Please do not modify it. Subsequent comments should be made in a new section. A summary of the conclusions reached follows.
No merge as per below, but new merge proposal for Probe effect to Observer effect (physics) initiated. -- P 1 9 9 • TALK 17:10, 21 October 2011 (UTC)[reply]

In Unusual software bug#Heisenbug we find: A heisenbug [...] is a computer bug that disappears or alters its characteristics when an attempt is made to study it.

In Probe effect we find: Probe effect is unintended alteration in system behavior caused by measuring that system.

They seem to be talking about the same phenomenon. Therefore, I propose that the stub article Probe effect be merged into the section Unusual software bug#Heisenbug. --Antonielly (talk) 11:18, 25 February 2009 (UTC)[reply]

Agree

[edit]
  1. I agree with the merge suggestion. Canadian Monkey (talk) 17:35, 16 December 2008 (UTC)[reply]

Disagree

[edit]
  1. Oppose - While the concepts are quite similar, I read one article as being about semi-serious jargon, while the other is technical. They don't seem to fit together from the perspective of what would reference them. However, I suggest that "Probe effect" might be submitted for deletion. It has little content and is more like a dictionary entry. It is linked to from only two articles. One is Event monitoring, which is an orphan itself and already includes a definition of "probe effect." The other is DTrace, which needs only half a sentence to define its usage of the term. ChrisMiddleton (talk) 02:23, 25 February 2009 (UTC)[reply]
  1. Oppose - The Probe effect article should instead be merged with the Observer effect article. But it should not be deleted. (Burket (talk) 02:49, 14 January 2010 (UTC))[reply]
The discussion above is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.

Another species ?

[edit]

Is there a name for something that is definitely a bug, but fixing the bug causes problems, even when the bug itself did not cause problems ?

Causes can be later developers working around the bug instead of fixing it, or the original developer making two mistakes that cancel out.

Could be OR ... --87.194.174.252 (talk) 15:26, 11 May 2009 (UTC)[reply]

Gamma Ray bug

[edit]

A bug which happens when a certain member of the team is not present and goes away when he/she is observing the reproduction of it. At this point the certain member can conclude the bug happens or fixes itself due to gamma rays stimulating the software differently in relation to the certain team member. It is rather funny, than scientific description. —Preceding unsigned comment added by 71.172.125.78 (talk) 23:02, 13 February 2010 (UTC)[reply]

Statistical

[edit]

I find it rather frustrating that the strfry bug mentioned as an example doesn't really seem to be fixed: http://sourceware.org/bugzilla/show_bug.cgi?id=4403 -opello (talk) 18:35, 6 September 2009 (UTC)[reply]

From the Future?

[edit]

I have found that if you set a computer's clock a dozen or so years ahead and then save a file and set the clock to the present, Windows XP saves the date the clock was on when you saved it. This leads to a file that appears to be from 2024 and it's pretty interesting. It's not really a bug, just a neat part of Windows.

Relationships and Inconsistencies Between Mandelbugs, Bohrbugs and Heisenbugs

[edit]

Consider adding a new section, possibly titled "Relationships and Inconsistencies Between Mandelbugs, Bohrbugs and Heisenbugs". The content would consist of the last three paragraphs from "Mandelbugs" starting with "In the literature..." and continuing thru "In a recent column in IEEE Computer..."

The information is related to "Mandelbugs", but it is also directly related to Bohrbugs and Heisenbugs so does not belong directly inside any one of these three sections. The new section might appear immediately following the three sections it discusses so it is easy to find and the article's flow continues logically (not sure about style here or if there is an existing rule). —Preceding unsigned comment added by Derekread (talkcontribs) 00:13, 27 October 2010 (UTC)[reply]

Noob bugs?

[edit]

1. There is no dictionary word for noob. The official word from the dictionary is newbie. Noob is SLANG.
2. Secondly the examples presented are not actual bugs from the application's code perspective but from the developer's perspective who is inexperienced with his own tools. --Ltsampros2 (talk) 16:32, 12 February 2011 (UTC) — Preceding unsigned comment added by Ltsampros2 (talkcontribs) 16:28, 12 February 2011 (UTC)[reply]

There are perfectly adequate words in the English language to describe the concept, without having to resort to slang and baby-talk: novice, neophyte, newcomer, amateur, etc., etc. —QuicksilverT @ 23:02, 24 February 2011 (UTC)[reply]
It doesn't matter what words you think constitute proper English and which do not. The only thing that matters is what the Reliable Sources report.--RaptorHunter (talk) 16:55, 11 May 2011 (UTC)[reply]

Cleanup

[edit]

OK, I think we all agree this article has issues:

  1. "Heisenbug" is probably a legitimate topic; it's jargon but it's a term that people actually use and that actually appears in the literature. "Bohrbug" also appears in the literature, but mostly in discussions of "Heisenbug" and even then only in jest: "...and if these here wacky bugs are called 'Heisenbugs', then these here regular bugs should probably be called 'Bohrbugs' or something, ha ha." "Mandelbug" and "Schrödinbug" have zero currency; they appear almost exclusively where people either mirror or directly quote from the pertinent pages from Wikipedia or the Raymond version of the Jargon File.
  2. The text under "Statistical bug" and "Alpha particle bug" describes legitimate phenonama, but
    1. I have my doubts that "statistical bug" and "Alpha particle bug" are common expressions frequently used in this sense by actual authors,
    2. they clearly don't belong into an article about a snarky jargon term.
  3. In the same vein, "unusual software bug" is almost certainly not a useful headword.

If there are no strong objections, I will, one week from now,

  1. merge "Phase of the Moon bug", "Statistical bug", and "Alpha particle bug" into the articles they belong,
  2. convert the rest of the article into an article on "Heisenbugs", condensing "Bohrbug", "Mandelbug", and "Schrödinbug" to the footnotes they naturally are.
Noym (talk) 17:17, 20 September 2011 (UTC)[reply]

Why "unusual"?

[edit]

Why unusual? Perhaps "Humorous software bug classification" would be better? Then again, it seems to me that the whole concept could be better handled by removing everything but "Heisenbug" and moving that description to, say, a section in software bug. 130.235.35.101 (talk) 06:30, 17 October 2011 (UTC)[reply]

Cleanup and renaming proposal

[edit]

From all the comments above it seems pretty clear that "Heisenbug" is the only term which has sufficient use to deserve an entry; the rest are second-order jokes with hardly any mention outside the Jargon File, and hardly deserve a mention. Thus I second the proposal to trim those sections, and furthermore propose to rename the page "Heisenbug".--Jorge Stolfi (talk) 16:00, 25 December 2011 (UTC)[reply]

For future reference, here are the relevant diffs, highlighting where those sections were moved:

FWIW, having the re-write take place at the same time greatly obfuscates the texts' history. :-| -- Jokes Free4Me (talk) 21:58, 26 January 2012 (UTC)[reply]

bug in the optimizing compiler and not in the program

[edit]

The section that explains how a bug can appear "when the program is compiled with an optimizing compiler, but not when the same program is compiled without optimization" ends with a clear statement that this is (always) the optimizing compiler's fault. I disagree, and expanding on the FP precision topic outlined in this section, i would consider such a program (that fails to account for minor changes in precision) to be buggy; it doesn't matter if the decision to use registers is done by the compiler (statically), or (dynamically, at run-time) by the Framework, or the Operating System. -- Jokes Free4Me (talk) 12:04, 7 February 2012 (UTC)[reply]

Heisenbugs manifesting in programs compiled with an optimizing compiler might result from programmer's reliance on undefined behavior. Assumptions made about non-compliant code can be invalidated by the compiler trying to optimize the code in accordance with specification. Striepan (talk) 10:38, 27 March 2014 (UTC)[reply]

Wikipedia citing itself?

[edit]

http://books.google.ca/books?id=hGAEAAAAMBAJ&pg=PA22

This link is cited under 'Related terms': A mandelbug (named after Benoît Mandelbrot's fractal) is a bug whose causes are so complex it defies repair, or makes its behavior appear chaotic or even non-deterministic.[9] A schrödinbug (named after Erwin Schrödinger and his thought experiment) is a bug that manifests itself in running software after a programmer notices that the code should never have worked in the first place.[9]

Despite being published in an obviously reputable magazine, this article cites Wikipedia as its own source! Not sure what the protocol is for dealing with this. — Preceding unsigned comment added by 92.232.153.218 (talk) 13:33, 17 February 2012 (UTC)[reply]

The "OpenOffice" HeisenBug

[edit]

The only example given in the article for a Heisenbug is of an elusive bug in "OpenOffice". That bug was actually a bug in CUPS and was listed earlier as an OpenOffice bug because this is the software the user was using. However I'm not sure this is a good example of a Heisenbug as per the definition in this article. The bug in question was very much deterministic. It turned out that it was easy to reproduce. It would happen under certain conditions: the printed job needed to be of a certain (but common) type, and the day of the week (according to the system clock) needed to be Tuesday. Tzafrir (talk) 06:41, 9 September 2013 (UTC)[reply]

But it wasn't easy to reproduce. If the person trying to reproduce the bug were to try on the wrong day, they could easily write it off. It's a good example since the conditions were not clear at the outset but once it is understood what the conditions are, it's easy to see it as a valid bug. Walter Görlitz (talk) 06:46, 9 September 2013 (UTC)[reply]

An example of a Heisenbug

[edit]

Circa 1990, I wrote Unix Korn shell script that was essentially one big loop. It died somewhere in the middle of the loop, so I put in a line that spat out the values of some of the variables so I could see just where it died. This time, it ran fine. So I took out the debugging code, and it died somewhere in the loop.

So I put the debugging line back in, redirected the output to the Null device, and inserted a comment:

# The next line is here because, if you take it out, the program will not run

I suspect it was a timing issue, but I had neither the time nor the inclination to find out. JHobson3 (talk) 09:38, 16 September 2014 (UTC)[reply]

Why is mandelbug so defined?

[edit]

"A mandelbug (named after Benoît Mandelbrot's fractal) is a bug whose causes are so complex...."

This seems to have been copied straight from JF or FOLDOC, but in any case it puzzles me. The formula that generates the Mandelbrot set is very simple. On this basis, I would expect a mandelbug to be a small mistake, such as a one-character typo, that causes the program to go haywire.

That said, I've just searched and found one source that defines "Mandel Bug" similarly to what I've just said. Trouble is this is the only source I've found so far. In any case, it would be nice if we can find and link to some insight into the origin of the definition that is given here.... — Smjg (talk) 17:51, 27 November 2014 (UTC)[reply]

Similar/related terms

[edit]

To User:Walter Görlitz: I didn't notice the introductory boldfacing; hence my mistake that you reverted. Now I added a forward reference in the intro, where "Similar terms" are listed, to the section where they are defined. Why? Because the redirects from those terms (those I checked, at least) don't indicate that they are actually defined lower down in this article. The naive redirected reader may (like me) not realize they are defined after the intro where they are boldfaced. If you disagree, this should be discussed. Zaslav (talk) 06:58, 2 September 2017 (UTC)[reply]

'Observer effect'

[edit]

This article repeats a common error in understanding Heisenberg's uncertainty principle. Heisenberg's uncertainty principle is NOT an observer effect. The uncertainty arises due to the properties of waves and is completely separate from an observer perturbing the system they're trying to measure. This is even mentioned in the linked article on the 'observer effect'. — Preceding unsigned comment added by 198.129.106.58 (talk) 21:48, 6 September 2017 (UTC)[reply]

[edit]

Hello fellow Wikipedians,

I have just modified 2 external links on Heisenbug. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

checkY An editor has reviewed this edit and fixed any errors that were found.

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 11:21, 1 November 2017 (UTC)[reply]

Etymology text is broken...

[edit]

In short, this section doesn't make sense (any more?). It may have been edited with good intentions at some point, or perhaps it never made sense. Either way, to have as its first words "The term was also used..." (my emphasis) is pretty broken and suggests that maybe those words were originally part of the second or later sentence in the section. Moreover the rest of the section never says anything about who coined the term, or when it happened. Even the linked article about Bruce Lindsay's interview fails to give a date, or name the other participants (and it seems clear that Bruce didn't coin the term himself). If those familiar with the article can adjust it, that would be great. If not, I may try and dig back through the history of the text in an effort to unpick what went wrong.

For the record, the full text (without line breaks) of the section as it currently stands is: "The term was also used in 1985 by Jim Gray, in a paper about software failures[17] (and is sometimes mistakenly attributed to him because of this publication) and also in 1986 by Jonathan Clark and Zhahai Stewart on the mailing list (later Usenet news group) comp.risks.[18] Bruce Lindsay, a researcher at IBM, affirmed in a 2004 ACM Queue interview that he was present when the Heisenbug was originally defined.[19] An earlier appearance in ACM publications is from 1983.[20]"

Smudgeface (talk) 14:10, 12 June 2022 (UTC)[reply]

With respect to the term 'also', it was introduced in this edit, the first sentence of which was later removed because it lacked sources. I've removed it. Mindmatrix 16:15, 12 June 2022 (UTC)[reply]

Floating point comparison

[edit]

User:Woutput has queried the statement: "This may affect, for instance, the result of floating-point comparisons, since the value in memory may have smaller range and accuracy than the value in the register"

I have personal experience of this happening: Consider the test: if 1/3 = 1/3 then ...

On the Elliott/ICL 4130 computer, a simple implementation resulted in the above test being false.

Floating point values occupied 48 bits in memory (39-bit mantissa, 9-bit exponent), but the floating point accumulator had a 48-bit mantissa. So calculate the first '1/3' and store it in memory with a 39-bit mantissa. Then calculate the second '1/3' in the floating point accumulator with a 48-bit mantissa, with the last 9 bits being non-zero. Compare accumulator with the value in memory, and they don't match!

The only way to get 'true' was to store both values in memory with rounding to a 39-bit mantissa, then reload one of them into the floating point accumulator and compare with the other value in memory.

Murray Langton (talk) 17:19, 9 March 2024 (UTC)[reply]