[Vm-dev] 3.10-6 shaky?

John M McIntosh johnmci at smalltalkconsulting.com
Wed Aug 19 08:13:48 UTC 2009


There is a known problem where unbalanced primitive calls, where the  
logic pop/push variables in an unbalanced manner
as it passes variables to primitive calls will cause the VM to crash.

This was identified in eToys where it would make calls to check  
sandboxing permissions.
Normally those calls aren't made in the squeak vm, but perhaps others  
exist.

What happens is the unbalanced pop leaves garbage on the stack where  
in the past that slot was not used, but now it's
used for the block closure logic, so when the method returns it  
attempts to use that slot data, and BOOM.

The crash happens on the return from a method call where the method is  
invoking a primitive. The trick then is to find
which method is being called.


Of course this all presumes that is the issue, and not some other  
problem, since I've not built a VM from the latest
code base for a few months now and there has been a few changes which  
I've not eyeballed.


On 19-Aug-09, at 1:08 AM, Michael Haupt wrote:

> Hi John,
>
> On Wed, Aug 19, 2009 at 10:01 AM, John M
> McIntosh<johnmci at smalltalkconsulting.com> wrote:
>> Is this a closure VM?
>
> it seems it is. (Eliot's factorial example produces a sensible
> result.) I don't have the time to look at the code right now, though.
>
> Best,
>
> Michael

--
= 
= 
= 
========================================================================
John M. McIntosh <johnmci at smalltalkconsulting.com>   Twitter:   
squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
= 
= 
= 
========================================================================






More information about the Vm-dev mailing list