[squeak-dev] FATAL PROJECT ERROR: Project was 'HomeProject'

Marcel Taeumel marcel.taeumel at hpi.de
Sat Jan 22 09:23:09 UTC 2022


Hi Lauren --


> The .1 is the debugger upon entry into MVC.

Hmm... the list of submorphs seems to include a "nil" here:

...
UndefinedObject(Object)>>doesNotUnderstand: #ownerChanged
[] in PluggableTextMorphPlus(Morph)>>doLayoutIn:
...

Which is then #pass 'ed on in #doLayoutSafely because the receiver in question is not a morph but nil and thus cannot be found on the stack:

...
MessageNotUnderstood(Exception)>>pass
[] in [] in PluggableTextMorphPlus(Morph)>>doLayoutSafely
...

What I do not understand is why this simple incident counts as a recursive error:

...
ToolSet class>>handleRecursiveError:
Debugger class>>openOn:context:label:contents:fullView:
...

But then I look at the bottom-most portion of the stack you shared:

...
PasteUpMorph>>privateOuterDisplayWorld
PasteUpMorph>>displayWorld
[] in MorphicDebugger class>>openOn:context:label:contents:fullView:
-- and more not shown --

So we were already trying to open a debugger but failed in layouting an instance of PluggableTextMorphPlus, which has a submorph that was "nil" instead of a morph, which in turn does not understand #ownerChanged.

Yes, that is a recursive error. Debuggers need to rely on scrollable list and text fields to work. But why is that instance of PluggableTextMorphPlus broken in the first place? Hmm....

> The .2 is attempting to create a new morphic project.

Aha! This here is a rather recent change where we wanted to see the world docking bar in the project's thumbnail before entering the project for the first time:

PluggableTextView(Object)>>doesNotUnderstand: #name:
SearchBar>>buildWith:
MVCToolBuilder(ToolBuilder)>>build:
ToolBuilder class>>build:
SearchBar class>>build
TheWorldMainDockingBar>>searchBarOn:
TheWorldMainDockingBar>>rightSideOn:
TheWorldMainDockingBar>>fillDockingBar:
TheWorldMainDockingBar>>createDockingBar
MorphicProject>>createOrUpdateMainDockingBar
MorphicProject>>assureMainDockingBarPresenceMatchesPreference
MorphicProject>>initialize
...

So, I think I will guard this #assureMainDockingBarPresenceMatchesPreference for now until we can find a way to safely do stuff for other projects. Well, things like "ToolBuilder default" might have to be a dynamically-scoped variable after all. We should think about this after the release.

***

Thanks for the report!

Best,
Marcel
Am 22.01.2022 08:16:22 schrieb Lauren Pullen <drurowin at gmail.com>:
Hi list,

I was running the Test Runner on packages pulled in by checking the
bonus options at the end of the preference wizard and the home project
aborted. I didn't land in the emergency evaluator, only the MVC root
project.

There are two logs I took:

The .1 is the debugger upon entry into MVC.

The .2 is attempting to create a new morphic project.

I also saved the image, one right before running the test runner and one
after morphic quit. I restarted the before-image to see what test
produced the crash and was unable to reproduce it.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220122/2b10060f/attachment.html>


More information about the Squeak-dev mailing list