[squeak-dev] UI lockup in Squeak 4.1
leves at elte.hu
Tue Jul 13 14:47:26 UTC 2010
On Tue, 13 Jul 2010, Rob Withers wrote:
> From: "Levente Uzonyi" <leves at elte.hu>
> Sent: Tuesday, July 13, 2010 9:19 AM
> To: "The general-purpose Squeak developers list"
> <squeak-dev at lists.squeakfoundation.org>
> Subject: Re: [squeak-dev] UI lockup in Squeak 4.1
>> On Tue, 13 Jul 2010, Rob Withers wrote:
>>> I am running Squeak 4.1 with Squeak4.0.2.exe VM on Windows. I downloaded
>>> it from squeak.org 2 days ago. I have loaded Cryptography, SSL, and
>>> SqueakElib. I am running SqueakElib as a server.
>>> My first indication of a problem is that the CPU goes to 100% and stays
>>> there. Squeak is uninterruptable with <alt>-. Windows Task Manager
>>> shows tat the problem is with Squeak.
>>> I opened the ProcessBrowser and turned on the CPUWatcher and ran the
>>> system. When the problem occurs, after awhile the VM exits having run out
>>> of memory. The crash.log says that the CPUWatcher was trying to
>>> catchThePig and it was instantiating an Exception but failed due to no
>>> memory. (There were 10 or so iterations of instantiating an exception).
>>> So I then went through all the SqueakElib code and made sure all Processes
>>> were being created with userBackgroundPriority, so I could interrupt them
>>> if they were the problem. I reran and reproduced the problem of the CPU
>>> going to 100%. It remained uninterruptable. However, after hitting
>>> <alt>-. about 20-30 times, the CPU usage went to 0%. Squeak remained
>>> uninterruptable. After trying to manipulate windows, I started getting the
>>> debug window at the bottom of the Squeak window and it said over and over:
>>> WARNING: event buffer overflow
>>> This occurs with mouseMove.
>>> Anyone seen this behavior? Anyone have any ideas on what is wrong, or
>>> what I can do to debug further? Given the last situation, I am thinking
>>> this is NOT a SqueakElib problem.
>> Is the low space watcher process running? Are you running out of memory?
>> How much memory does squeak use when the lockup occurs?
> The low-space watcher is running, at least before the problem starts. I do
> eventually run out of memory, but the uninterruptable state happens before
> this. I max out at 544,020 K memory allocated (according to Task Manager).
> I can watch it grow. I start at 62,068 K.
> This is new: Squeak stopped growing for awhile, at 534,000 K, although it was
> still at 100% cpu. I was able to select processes in the Process Browser,
> although very slowly.
The only problem I see here is that the low space watcher is not telling
you that you're running out of memory, but this can happen if multiple
processes try to allocate memory, since the low space watcher can only
interrupt one process.
If there's is no free memory available, the vm will try to free memory by
collecting the garbage which causes the high cpu usage.
If using more than 512MB is normal for your app then add more memory to
squeak. If it's not, then it's a memory leak (probably in Smalltalk).
More information about the Squeak-dev