squeak-smalltalk / squeak-object-memory

Issues and assets related to the Squeak object memory.
https://bugs.squeak.org
MIT License
13 stars 1 forks source link

`Process>>#terminateAggressively` raises `MessageNotUnderstood: UndefinedObject>>stepToCallee` #44

Open LinqLover opened 2 years ago

LinqLover commented 2 years ago

Citing @isCzech:

If you run this in the Workspace: p := [ [Semaphore new wait] ensure: [1/0] ] fork And then terminate by hand in the Workspace: [p terminate] fork

Then Abandoning the debugger via #terminateAggressively always generates the MNU you mentioned.

Or also:

[self halt] ensure: [self error].

"Terminate from halt, then abandon from error"

See https://lists.squeakfoundation.org/pipermail/squeak-dev/2022-June/221058.html.

isCzech commented 1 year ago

Fix by Kernel-jar.1500 The root cause is #runUntilErrorOrReturnFrom: won't check for topContext == nil when doing topContext stepToCallee and #terminateAggressively won't check for suspendedContext == nil when doing suspendedContext privRefresh This happens because #terminateAggressively attempts to complete the whole stack including the bottom context.

The issue can be closed.

isCzech commented 1 year ago

Hi Christoph, could you please take a look and merge Kernel-jar.1500 fixing the #runUntilErrorOrReturnFrom: and #terminateAggressively bug? Thanks!