[BUG] Can't read BMPs in 3.4/3.5 Windows VM (was Re: [bug?] Problems with Alice -- can't open new models)

PhiHo Hoang phiho.hoang at rogers.com
Sun Jun 22 17:08:12 UTC 2003


Hi John,

> Ya, I think the last GC bug we had which was related to class changing
> and process switching where one forgot
> to remember to swap an instance variable was 2-3? years ago. This is
> not to say there couldn't be a bug, however in my
> experiences any GC crash is related to some primitive trashing memory.

    I tend to agree with Tim and you about this.
    That's why it was categorised as 'nasty and dirty' ;-)

    But Mark reported a crash when he evaluated:

        Form fromFileNamed: 'anything.bmp'

    I could never reproduce this. However I could randomly crashed Squeak
    when I tried to makeActorFrom cat.mdl. Sometimes I got a cat sometimes
    I got a crash before my first post.

    After my first posting, I tried several times on two diffrent machines and 
    could not reproduce it even when loading mutiple actors, one after another.

    How can this behavior be explained ?
    What can cause Squeak to crash in a non-reproducible manner ?

    If the loading of BMP is corrupting the memory, would the crash be reproducible
    every time ?

    To me this bug seems to be dependent on environment. Maybe Mark can clarify
    this by trying to reproduce it under different environments.

    I also noticed a few things that may be helpful for further investigations:

        1/- primitiveFullGC (130) is never called during my game session (FreeCell, Tetris)

        2/- primitiveFullGC is not called when I evaluated:
            
            Form fromFileNamed: 'F:\squeak\AliceObjects\Animals\Chicken.bmp'
    
        3/- primitiveFullGC is not call when I open/view same bitmap via FileList.

        4/- primitiveFullGC is called many times when I open 'Chicken.mdl'
            once for every part of the chicken, namely:

                left leg, left foot, right leg, right foot, neck, head, upperLip, lowerLip.

            who, what are responsible for the GC call ?

        5/- at this point sometimes it crashed, sometimes it didn't, but if it did not
            crash, it did not show me the chicken either (not even in the garbage bin ;-)

            Where is my chicken ? Is this reproducible on other platforms.

        Cheers,

        PhiHo.
           
----- Original Message ----- 
From: "John M McIntosh" <johnmci at smalltalkconsulting.com>
To: "The general-purpose Squeak developers list" <squeak-dev at lists.squeakfoundation.org>
Sent: Friday, June 20, 2003 4:10 PM
Subject: Re: [BUG] Can't read BMPs in 3.4/3.5 Windows VM (was Re: [bug?] Problems with Alice -- 
can't open new models)


> Ya, I think the last GC bug we had which was related to class changing
> and process switching where one forgot
> to remember to swap an instance variable was 2-3? years ago. This is
> not to say there couldn't be a bug, however in my
> experiences any GC crash is related to some primitive trashing memory.
>
> If you've seen the visualworks source code, why every step of the way
> in the debug vm, there are assert checks
> to confirm there are no buffer overflow conditions and everything in
> sight is confirmed as valid. We aren't as paranoid in Squeak.
>
> I'd suspect one would need to look at the BMP code and start coding up
> asserts to confirm there are no
> memory overwrite conditions.
>
> For example I just fixed a problem in the SerialPort Read Primitive
> were a size check is made, but on a failure
> just the success flag is set (prim failed), and the vm cheerfully
> executes the memory trashing. It never has been an issue
> because the primitive call is setting up the right values, still I was
> surprised to see it was defective.
>
> On Friday, June 20, 2003, at 11:47  AM, Tim Rowledge wrote:
>
> > It's very unlikely that this is a bug in the GC code. Crashing in prim
> > 130 means nothing - much more plausible is that the BMP loading code is
> > corrupting memory and the corruption causes GC to go mental.
> >
> > tim
> > --
> > Tim Rowledge, tim at sumeru.stanford.edu, http://sumeru.stanford.edu/tim
> > Strange OpCodes: PUS: PUrge System
> >
> >
> >
> --
> ========================================================================
> ===
> John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ========================================================================
> ===
>
>



More information about the Squeak-dev mailing list