[2909] in Release_Engineering
NEOS annotation bug FOUND!
daemon@ATHENA.MIT.EDU (Bill Cattey)
Mon Aug 3 23:15:50 1992
Date: Mon, 3 Aug 1992 23:15:27 -0400 (EDT)
From: Bill Cattey <wdc@Athena.MIT.EDU>
To: f_l@Athena.MIT.EDU, nschmidt@Athena.MIT.EDU, tjm@Athena.MIT.EDU,
Cc: gjackson@Athena.MIT.EDU, rel-eng@Athena.MIT.EDU, rr2b+@andrew.cmu.edu
I know what caused the problem.
I know precisely under what conditions the problem occurs.
I have an immediate work around.
I have a single revised file, iconview.do, that corrects the problem
that we should consider installing, or making available in some way.
----
The problem reported was that EZ would core dump randomly when many
annotations were inserted.
----
The problem turns out to be exactly this:
If you issue the command to insert a note and don't wait for the note
inset to be drawn, EZ will die.
Inside ez is a tree of little view windows. What happened was that code
that makes sure all these windows know all they need to function had a
fault. Redundant code in the updating routines that drew these windows
would set the necessary bits. But if a user typed at the right time,
the information would be needed before the redundant code set it.
Now that I see the problem I have a very high level of confidence that
the problem we identified and fixed is the problem that people have been
experiencing.
----
The immediate work around is:
Don't type an annotation until you see the window appear.
----
I would like to convene a discussion on whether we need to install this
.do file, and if so, how we should do it.
----
Special thanks to Dot for inserting a whole bunch of annotations and
getting it to fail. The information that it failed for you on a VS2000
when there were delays stuck in my mind and helped me focus on what was
wrong.
Special thanks to Anne Lavin, Katie Livingston, and Robin Dumas for
sitting down and beating on the thing for several days. It was Robin
who hit the jackpot and produced the first failure inside the debugger
so that I could rule out most problems.
Special thanks also to Rob Ryan at CMU, who as soon as he heard the
minimal test case and the words "I think it's a race condition."
immediately duplicated the problem and began explaining to himself and
me why it might be occuring.
G'night Folks.
-Bill Cattey
P.S. For the next release of ATK we have another change which will make
EZ more resistant to dying from such faults as this. Rob and I
understand the view tree much better now and we plan to use this
knowledge to audit other modules and to instruct other programmers.