[Vm-dev] squeak on opensolaris 2009.06

David T. Lewis lewis at mail.msen.com
Sat Nov 7 22:58:37 UTC 2009


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



More information about the Vm-dev mailing list