sweep failed to find exact end of memory

Bert Freudenberg bert at freudenbergs.de
Thu Feb 22 21:08:38 UTC 2007


On Feb 22, 2007, at 19:20 , Jimmie Houchin wrote:

> Jon Hylands wrote:
>> On Thu, 22 Feb 2007 11:24:43 -0600, Jimmie Houchin  
>> <j.squeak at cyberhaus.us>
>> wrote:
>>
>>> In a workspace I did
>>>
>>> | oc |
>>> oc := OrderedCollection new.
>>> 1 to: 20000000 do: [:i | oc add: i].
>>>
>>> It never completes. It always crashes with
>>>
>>> sweep failed to find exact end of memory
>>>
>>>
>>> This is on my laptop with 1.25gb of RAM 2gb of swap i386 Ubuntu  
>>> Linux.
>>
>> Must be a Linux thing. I can do that on my Windows laptop with no  
>> problems.
>>
>> 2 GB of RAM, Win XP Pro.
>>
>> Squeak jumps from 40 MB used up to around 155 MB used when I open an
>> inspector on the oc. Takes about 7 seconds if I don't inspect, 17  
>> if I do.
>>
>> When I close the inspector, after it GC's it goes back down to 40  
>> MB...
>
> Yes, Linux does play a role. From earlier in the thread how Squeak  
> does
> is totally dependent on how the OS allocates memory to Squeak. In this
> instance it appears that Linux exacerbates the problem in Squeak.
>
> Tim says:
>  "It's not so much the amount of memory as where it's allocated.
>   A 10Mb allocation that involves >2Gb values will still go kaboom
>   (There was supposed to be an earth-shattering Kaboom,
>   where was the earth-shattering kaboom?)
>
>   Some OSs allocate from low adresses; some from high.
>   Some do weird things."
>
> Avi replies:
>   "Right -
>    I see this a lot more under Linux than under OS X, for example."
>
> I would love to be running on OS X servers. But at the moment the  
> one I
> have is Linux. So I have to deal with it.
>
> So I guess if you are running an OS other than Linux, possibly put  
> in a
> higher value than the 20m in my example above. I started at 100m and
> worked down to the 20m before I gave up and started working my way up
> instead.

If someone had a windows machine with more than 2 GB RAM and if the  
Windows VM allows to allocate more than 2 GB for an image then you  
should run into the same problem.

Now, I do have 3 GB in my Mac so I might test this theory - however,  
SqueakMaxHeapSize seems to be a 32 bit signed int in the plist so I  
cannot set it to larger than 2GB ...

- Bert -





More information about the Squeak-dev mailing list