Re: [Q] Heisenbug and anti-heisenbug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2017/05/07 20:50:15 -0700, Paul E. McKenney wrote:
> On Sun, May 07, 2017 at 09:23:03AM +0900, Akira Yokosawa wrote:
>> On 2017/05/03 07:59:48 -0700, Paul E. McKenney wrote:
>>> On Wed, May 03, 2017 at 05:14:57PM +0900, Akira Yokosawa wrote:
>>>> On 2017/05/02 19:47:19 -0700, Paul E. McKenney wrote:
>>>>> On Wed, May 03, 2017 at 09:23:11AM +0900, Akira Yokosawa wrote:
>>>>>> On 2017/05/03 09:09:37 +0900, Akira Yokosawa wrote:
>>>>>>> Hi Paul,
>>>>>>>
>>>>>>> While reviewing your recent update in "Hunting Heisenbugs" section,
>>>>>>> I found the analogy with particle physics didn't sit well with me.
>>>>>>>
>>>>>>> "Heisenbug" is defined as:
>>>>>>>
>>>>>>>> attempts to track down the heisenbug causes it to radically change
>>>>>>>> its symptoms or even disappear completely. 
>>>>>>>
>>>>>>> "Anti-heisenbug" is introduced as:
>>>>>>>
>>>>>>>> Fortunately, particle physics is up to the task: Why not create
>>>>>>>> an anti-heisenbug to annihilate the heisenbug?
>>>>>>>
>>>>>>> At this point, "anti-heisenbug" seems to mean a patch that fixes
>>>>>>> the heisenbug.
>>>>>>>
>>>>>>> The use of anti-something in particle physics does not go along
>>>>>>> with this usage.
>>>>>>>
>>>>>>> For example, antiproton is an antiparticle of proton.
>>>>>>> antiproton has mostly the same property as proton,
>>>>>>> with the exception of electric charge and magnetic moment.
>>>>>>> Also, an antiproton and an antielectron (positron) can compose
>>>>>>> an antihydrogen atom. Well, I'm sure you know all about this.
>>>>>>>
>>>>>>> So, if you employ this line of reasoning, an anti-heisenbug should
>>>>>>> also be a bug with something opposite in nature.
>>>>>>>
>>>>>>> If a heisenbug is a bug which vanishes when it is being tracked down,
>>>>>>> an anti-heisenbug would be a bug which only emerges when it (or 
>>>>>>> something else) is being tracked down.
>>>>>>>
>>>>>>> However, it is not obvious you can create an anti-heisenbug for
>>>>>>> a particular heisenbug so that when the two are combined, the symptoms
>>>>>>> of both bugs to "annihilate".
>>>>>>>
>>>>>>> So I'm wondering "What was Paul's intention in using the word 'annihilate'?".
>>>>>>>
>>>>>>> In Section "Add Delay", anti-heisenbug is used as:
>>>>>>>
>>>>>>>> Once you spot a bug involving a race condition, it is frequently
>>>>>>>> possible to create an anti-heisenbug by adding delay in this manner.
>>>>>>>
>>>>>>> This "anti-heisenbug" is not a bug, rather, it is a means to increase
>>>>>>> the possibility of a given heisenbug to appear. 
>>>>>>>
>>>>>>
>>>>>> Oops, I sent this prematurely.
>>>>>> But you might be able to see my point here.
>>>>>>
>>>>>> This is not an important question, so please give it a look when you have
>>>>>> done with whatever issue you are working on.
>>>>>
>>>>> I freely admit that I am taking a fair amount of "poetic license" here.  ;-)
>>>>
>>>> So, what about adding a footnote like this?
>>>
>>> That isn't bad at all!
>>>
>>> But let's take a look at several possible approaches:
>>>
>>> o	Continue using "anti-heisenbug", but remove the current definition.
>>> 	(To the extent that it could be considered to be a definition.)
>>>
>>> o	Use the following analogy:
>>>
>>> 		When you annihilate an electron and a positron, you don't
>>> 		get nothingness, you instead get an energetic photon.
>>> 		Similarly, when you annihilate a heisenbug and an
>>> 		anti-heisenbug, you don't (usually) get nothingness,
>>> 		instead, you get a (hopefully) easier-to-locate bug.
>>>
>>> o	The solution you propose below.
>>>
>>> o	Leave as is, and assume that people will get the "poetic license".
>>>
>>> o	Additional ideas here!
>>>
>>> o	Any of the above, but have a quick quiz on the definition
>>> 	instead of a footnote or an inline definition/explanation.
>>>
>>> Thoughts?
>>
>> I looked around the use of "heisenbug" and found an entry in quora:
>>
>> https://www.quora.com/Why-do-people-mix-up-the-observer-effect-and-the-uncertainty-principle
>>
>> What "heisenbug" should imply is the "observer effect", not the "uncertainty principle".
>>
>> So the definition of heisenbug given in the text is already confusing.
> 
> That may be, but I wasn't the one who defined heisenbug.  ;-)
> 
> But given that it is defined, and given that a very large number of people
> are very scared of heisenbugs, it is my job to reduce, preferably remove,
> the fear.  Less fear is needed so that they can better deal with the
> heisenbugs that they will inevitably come across.
> 
>> An example of observer effect in quantum mechanics is interference of
>> electron beam passing through double slit.
>> If you don't know which slit each electron passes, you can observe interference
>> pattern. But once you put some equipment to know which slit an individual
>> electron passes, you no longer see the interference pattern.
>>
>> This situation is much relevant to heisenbug, isn't it?
> 
> Well, it actually -might- be possible to come up with a heisenbug that
> mimicked quantum superpositioning and entanglement, but I don't know of
> one right offhand.  Actually, it -has- to be possible to generate such a
> heisenbug because we can simulate quantum systems with software.  Whether
> or not such a heisenbug would actually occur naturally, I couldn't say.
> Seems a bit unlikely, but then again, so did RCU.  ;-)

Hmm, hard to imagine...

> 
>> Heisenberg used observer effect to explain his uncertainty principle as
>> a thought experiment on the gamma-ray microscope.
>> This is the origin of the confusion. And most people are still confused.
>>
>> So I don't like to see further analogies with misleading implications, which
>> would just look odd or strange for those familiar with particle physics who
>> happens to be also interested in parallel processing.
> 
> The readers need to laugh enough, be confused enough, or whatever, in order
> to let go of their fear.

;-)
 
> 
>> All we need is to *somehow* make (the symptom of) a given heisenbug be
>> reliably reproduced. And those "somehow"s are the theme of this section.
> 
> That is true!
> 
>> So, I'd suggest 1) fixing the definition of heisenbug, 2) departing from
>> the analogy of particle physics. One problem is what name to use instead of
>> anti-heisenbug. If you use "anti-" as in "antibiotics", anti-heisenbug
>> is not necessarily confusing.
> 
> I am not at all optimistic about being able to fix the definition
> of heisenbug.  It has been in use for far too long.

And most people are likely to have heard of the uncertainty principle. 

> 
>> Or you might be able to come up with a better analogy by looking into studies
>> in quantum measurement such as "weak measurement". This field is related to
>> quantum computing you are planning to include into perfbook.
>>
>> See e.g. http://iopscience.iop.org/article/10.1088/0031-8949/91/7/073001/meta
>>
>> This is a review paper written from experimenters' POV, and should be easier
>> to read than theoretical papers cited therein, I suppose.
> 
> But if we have to educate the typical reader about weak measurement, we
> have already lost.

Point taken.

>                     We will lose them, and they will retain their
> crippling fear of heisenbugs.
> 
> How about something like the following patch?

Fair enough.

And "heisen-ness" sounds funny enough.

If you want to add,

Acked-by: Akira Yokosawa <akiyks@xxxxxxxxx>

                                 Thanks, Akira

> 
> 							Thanx, Paul
> 
> ----------------------------------------------------------------------
> 
> commit 50d1f21f54540ff6ec38cc44715c213c3e16f2fe
> Author: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> Date:   Sun May 7 20:46:19 2017 -0700
> 
>     debugging: Add footnote stating that "heisenbug" is a misnomer
>     
>     https://www.quora.com/Why-do-people-mix-up-the-observer-effect-and-the-uncertainty-principle
>     http://iopscience.iop.org/article/10.1088/0031-8949/91/7/073001/meta
>     
>     But the word is well entrenched in common usage in parallel programming.
>     
>     Reported-by: Akira Yokosawa <akiyks@xxxxxxxxx>
>     Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> 
> diff --git a/debugging/debugging.tex b/debugging/debugging.tex
> index e621ebdb540b..c41057f35c31 100644
> --- a/debugging/debugging.tex
> +++ b/debugging/debugging.tex
> @@ -1370,23 +1370,30 @@ The next section discusses counter-intuitive ways of improving this situation.
>  
>  This line of thought also helps explain heisenbugs:
>  adding tracing and assertions can easily reduce the probability
> -of a bug appearing.
> -And this is why extremely lightweight tracing and assertion mechanism are
> +of a bug appearing, which
> +is why extremely lightweight tracing and assertion mechanism are
>  so critically important.
>  
> -The name ``heisenbug'' stems from the Heisenberg Uncertainty Principle
> -from quantum physics, which states that it is impossible to exactly
> -quantify a given particle's position and velocity at any given point
> -in time~\cite{WeinerHeisenberg1927Uncertain}.
> +The term ``heisenbug'' was inspired by the Heisenberg Uncertainty
> +Principle from quantum physics, which states that it is impossible to
> +exactly quantify a given particle's position and velocity at any given
> +point in time~\cite{WeinerHeisenberg1927Uncertain}.
>  Any attempt to more accurately measure that particle's position will
>  result in increased uncertainty of its velocity.
> -A similar effect occurs for heisenbugs: attempts to track down the heisenbug
> -causes it to radically change its symptoms or even disappear completely.
> +A roughly similar effect occurs for heisenbugs: attempts to track down
> +the heisenbug causes it to radically change its symptoms or even disappear
> +completely.\footnote{
> +	The term ``heisenbug'' is a misnomer, as most heisenbugs are
> +	fully explained by the \emph{observer effect} from classical
> +	physics.
> +	Nevertheless, the name ``heisenbug'' has stuck.}
>  
>  If the field of physics inspired the name of this problem, it is only
> -logical that we should look to the field of physics for the solution.
> +logical that the field of physics should inspire the solution.
>  Fortunately, particle physics is up to the task:
>  Why not create an anti-heisenbug to annihilate the heisenbug?
> +Or, perhaps more accurately, to annihilate the heisen-ness of
> +the heisenbug?
>  
>  This section describes a number of ways to do just that:
>  
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe perfbook" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux