[squeak-dev] Cog VM crash dump

Eliot Miranda eliot.miranda at gmail.com
Thu Dec 6 02:22:00 UTC 2012


Hi Chris,

On Tue, Dec 4, 2012 at 7:50 PM, Chris Muller <asqueaker at gmail.com> wrote:

> Hi Eliot, here is one using the new r2628 VM on Linux.
>

yesterday at Cadence we identified a problem on linux with stack corruption
due to a deep call chain at signal delivery time on the native stack.  The
Cog JIT runs SMalltalk on a segmented stack organized as pages, each page
having some headroom upon which to take an interrupt.  In this case a
signal was delivered that was caught by the UnixOSProcessPlugin's
handleSignal function which in turn tried to call signalSemaphoreWithIndex
in the interpreterProxy.  But since this was the first time this had
happened the dynamic linker kicked in to resolve the address and this call
chain was deep enough to overwrite the bottom of the adjacent page, causing
the garbage collector to crash when it tried to follow a corrupted pointer.

We identified the problem using an assert-enabled VM that runs a bit slower
but prints useful error messages in advance of crashes.  I wonder Chris if
you'd be willing to try an assert-enabled VM with your code and see if we
can find out more info.  Hopefully the crash will have the same cause.  I'm
working on a fix right now.  One half is to increase the per-page headroom
a little.  Another fix is to generate plugins in a more intelligent way so
that dynamic linking activity will be done at plugin load time, and so that
internal plugins will statically link against the VM, for a little extra
performance.

Let me know if you'd like to try an assert-enabled VM.

On Tue, Dec 4, 2012 at 12:02 PM, Eliot Miranda <eliot.miranda at gmail.com>
> wrote:
> > For the list's information it looks like the new r2628 VMs on my site fix
> > this crash.
> >
> >
> > On Sun, Dec 2, 2012 at 4:15 AM, Stéphane Rollandin <
> lecteur at zogotounga.net>
> > wrote:
> >>
> >> Hello,
> >>
> >> Attached is a crash dump of the (I think) latest Cog VM on Windows 7.
> The
> >> crash happens when after double-cliking Croquet.exe I select the image I
> >> want to open. Strangely it does not always happen though.
> >>
> >> Stef
> >>
>



-- 
cheers,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20121205/41df6857/attachment.htm


More information about the Squeak-dev mailing list