Re: [Q] Heisenbug and anti-heisenbug

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

 



On Tue, May 09, 2017 at 12:06:29AM +0900, Akira Yokosawa wrote:
> 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...

So was RCU.  ;-)

> >> 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. 

Exactly!

> >> 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>

Added and pushed, thank you!

							Thanx, Paul

>                                  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