On Sat, Nov 07, 2009 at 12:45:35PM -0800, Randal L. Schwartz wrote:
It might be related to the fact that 2009.06 solaris kernel added some extra error return from the poll() call that nobody was expecting (which broke apache), and I presume Squeak is using poll at the lowest level.
Here's the stack where squeak seems to be frozen:
cf6b1687 pollsys (8047850, 1, 8047908, 0) cf65ce01 pselect (8, 8047a50, 80479d0, 8047950, 8047908, 0) + 199 cf65d1d6 select (8, 8047a50, 80479d0, 8047950, 8047948, 80f94e0) + 78 0807d45a aioPoll (0, 0, 0, 0, 0, 0) + 10a 00000000 ???????? ()
This is probably a red herring. An idle image will normally be spending most of its time in aioPoll(), so if you interrupt it you are most likely to see a backtrace like this. If aioPoll() were not working, you would certainly see other problems in a normal headfull image.
The function in the unix VM is (from sqaio.h):
/* Sleep for at most `microSeconds'. Any event(s) arriving for * handled fd(s) will terminate the sleep, with the appropriate * handler(s) being called before returning. */ extern int aioPoll(int microSeconds);
Which is implemented using select() in platforms/unix/vm/aio.c. Off topic but FYI, the aio functions are accessible from the image via the AioPlugin, which is distributed with Unix VMs.
Dave