[squeak-dev] BUG/REGRESSION while debugging Generator >> #nextPut:

Eliot Miranda eliot.miranda at gmail.com
Sun Dec 15 00:09:22 UTC 2019



> On Dec 14, 2019, at 5:43 AM, Thiede, Christoph <Christoph.Thiede at student.hpi.uni-potsdam.de> wrote:
> 
> 
> By request, screenshots from a clean image ...
> 
> 
> <pastedImage.png>
> 
> ⤴ Press over
> 
> Press cmd-dot ⤵
> 
> <pastedImage.png>
> 
> 
> 
> 
> The screenshots from 5.1 were made in a clean 5.1 image.
> 

Hi Christoph,

   I’ve tried this in two trunk 64-bit images, one with the V3PlusClosures bytecode set and one with the SistaV1 bytecode set and no problem occurs in either case.  If this only happens in a clean 5.1 image then I suspect it has already been fixed.

> Best,
> 
> Christoph
> 
> Von: Thiede, Christoph
> Gesendet: Freitag, 13. Dezember 2019 19:48:00
> An: Squeak Dev
> Betreff: BUG/REGRESSION while debugging Generator >> #nextPut:
>  
> Hi all,
> 
> 
> 
> I discovered a bug when stepping over a call to Generator >> #nextPut:.
> 
> !! Save your image before trying the following !!
> 
> 
> 
> Generator
> on: [:stream | stream nextPut: #foo]
> 
> <pastedImage.png>
> 
> 
> 
> 
> Due to multiprocessing implementation of the Generator, pressing over will hang up the current process forever, because the generator is never queried.
> If I press cmd-dot, I get an infinite number of debugger windows that show Context >> #cannotReturn:. This will probably damage your image.
> 
> The first is annoying for newcomers, but I see this behavior is reasonable and without the effect of the second, it wouldn't be a big problem.
> The second, however, looks like a bigger issue to me. Actually, I think the most serious aspect is that in Squeak 5.1, the same procedure does not crash your image, but you are forwarded to the emergency debugger and can terminate the process:
> 
> <pastedImage.png>
>  
> <pastedImage.png>
> 
> 
> Also, this is not the first scenario in the last time where I got an infinite debugger chain. See [BUG(s)] in Context control (#jump, #runUntilErrorOrReturnFrom:) for a similar issue. And there were even more situations which I could not yet reproduce exactly.
> I'm afraid that the recent changes to the debuggers might have weakened its ability to detect recursive errors. Can someone else tell about these problems?
> 
> I suppose we ignore a large number of recursive errors as in MorphicDebugger >> #openOn:context:label:contents:fullView:, the uiBlock is often triggered as a separate UI message which will be executed after the recursion flag has been cleared by the base class.
> 
> Would be great if someone could have a look at it or share more information :)
> 
> Best,
> Christoph
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20191214/03c4aea6/attachment.html>


More information about the Squeak-dev mailing list