Hi VM maintainers,
We have run into the following problem with 3.7/3.9 unix VMs (but not
with version 3.6). The VM hoggs the CPU and does not respond anymore
after consuming more than about 120MB of memory. The problem is
reproducible independently of the image version (simply by
instantiating enough objects).
This is the VM version we are using:
3.7-7 #1 Don Okt 20 11:25:27 CEST 2005 gcc-Version (Debian Squeak3.7
of '4 September 2004' [latest update: #5989] Linux 2.6.10 #1 Tue Dec
28 21:16:21 CET 2004 i686 GNU/Linux
Inspecting the Squeak process stacks with gdb does not show anything
unusual, however, one process does not seem to get back from calling
t he new: primitive.
The call stack of the VM looks like this:
#0 updatePointersInRangeFromto (memStart=231866373, memEnd=2138759076)
at gnu-interp.c:21562
#1 0x0805d500 in incCompBody () at gnu-interp.c:4650
#2 0x0805d2ed in fullGC () at gnu-interp.c:4500
#3 0x0806d576 in sufficientSpaceAfterGC (minFree=202536) at gnu-
interp.c:21275
#4 0x08067d5e in primitiveNewWithArg () at gnu-interp.c:16045
#5 0x080614fa in interpret () at gnu-interp.c:7249
#6 0x0805a5fb in main (argc=0, argv=0xbfeff8a4, envp=0x0)
at /usr/src/Squeak-3.7-7/platforms/unix/vm/sqUnixMain.c:1367
It looks like the same issue has been discussed in the following
thread already:
http://lists.squeakfoundation.org/pipermail/seaside/
2005-October/005897.html.
The proposed workaround of explicitly setting -memory with a high
enough value works, i.e., the vm does not stop working when the
memory consumption exceeds 120MB.
Since in Seaside applications images often grow up to 200MB or even
more, this is a real show stopper...
Cheers,
Adrian