[Pharo-project] garbage collection

Norbert Hartl norbert at hartl.name
Mon Feb 20 12:02:22 UTC 2012


Am 19.02.2012 um 18:26 schrieb Chris Muller:

>> Very strange. Shortly after I read your post I opened a unresponsive image
>> myself. In the process stack I saw that magma was the culprit (didn't remember
>> I have it installed in that image). However the problem was that I moved my
>> directory and magma was looking for the old path. I didn't investigate further but
>> it seems that the MagmaRepositoryController>>#open (called on startUp) is
>> able to block the UI thread. In the same image I could use seaside still although
>> the UI was frozen.
> 
> Hi.  Based on your description, it sounds like Magma hit its warning
> condition check that it found a file named "_open" in the repository
> directory, indicating it thinks another process has it open.  This can
> occur if the server image did not shut down properly last time.
> 
> Before starting the image, see if there is a file called "_open" and,
> if there is, delete it.  The image should start normally now.
> 
The directory wasn't there anymore where magma was looking for it. Does magma look in other directories as well. The magma/ Folder was still in the same directory as the image. But I thought magma is looking for the absolute path because that's what I can see in the debug log. Anyway there was a file called _open in that directory. So either magma didn't find the directory or it was locked by the _open.

> This is something that has annoyed me at least a couple of times as
> well.  I'm not sure what the UI process was doing in your case, but
> Alt+. should allow you to interrupt it and see the stacks..  My
> suspicion is that something in the image wanted a MagmaSession to do
> something, but since the server was waiting for you to respond to the
> Warning about "_open" it wouldn't return...
> 
Alt+. did not work. It was not reacting to anything. The warning about _open would have been a dialog?

> The confusing part for me is, the image startup code runs in the UI
> process doesn't it?  So why were there two Processes to possibly get
> into a deadlock?

Well, I don't have enough knowledge but I would say in pharo it isn't impossible that there are more than one thread being involved.

Norbert


More information about the Magma mailing list