Issue 3534 in pharo: LargePositiveInteger(Object)>>error

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Issue 3534 in pharo: LargePositiveInteger(Object)>>error

pharo
Status: Accepted
Owner: [hidden email]
CC: eliot.miranda
Labels: Milestone-1.2

New issue 3534 by [hidden email]:  
LargePositiveInteger(Object)>>error
http://code.google.com/p/pharo/issues/detail?id=3534

It was already discussed here:

http://lists.gforge.inria.fr/pipermail/pharo-project/2011-January/039447.html

but I havent found an issue yet.

 From time to time I now also get the following error when opening the
world menu (the menu with the help icon is red crossed due to display error)

I use the latest prebuilt Cog VM

Here is the stack:

VM: Win32 - IX86 - 5.1 - Croquet Closure Cog VM [CoInterpreter  
VMMaker-oscog.45]
Image: Pharo1.2beta [Latest update: #12297]


LargePositiveInteger(Object)>>error:
        Receiver: 4278190081
        Arguments and temporary variables:
                aString: 'MessageNotUnderstood:  
LargePositiveInteger>>pixelValueForDepth:'
        Receiver's instance variables:
4278190081

[:err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
        [errCtx := errCtx sender.
        [errCtx notNil
                and: [errCtx receiver isMorph not]]
                whileTrue: [errCtx := errCtx sender].
        errCtx
                ifNil: [^ self handleFatalDrawingError: err].
        errMorph := errCtx receiver.
        errMorph hasProperty: #errorOnDraw] whileTrue.
        errMorph setProperty: #errorOnDraw toValue: true.
        rcvr error: err] in WorldState>>displayWorldSafely:
        Receiver: a WorldState
        Arguments and temporary variables:
                err: 'MessageNotUnderstood: LargePositiveInteger>>pixelValueForDepth:'
                rcvr: 4278190081
                errCtx: ToggleMenuItemMorph>>drawIcon:on:in:
                errMorph: a ToggleMenuItemMorph(17825792)'Help'
        Receiver's instance variables:
                hands: an Array(a HandMorph(843055104))
                viewBox: 0@0 corner: 1672@982
                canvas: a FormCanvas on: DisplayScreen(1672x982x32)
                damageRecorder: a DamageRecorder
                stepList: a Heap(StepMessage(#stepAt: -> an  
OverflowRowMorph(157810688))(an Ove...etc...
                lastStepTime: 105085
                lastStepMessage: nil
                lastCycleTime: 105055
                alarms: a Heap()
                lastAlarmTime: 105085
                menuBuilder: a PragmaMenuBuilder

BlockClosure>>cull:cull:
        Receiver: [:err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
        [errCtx := errCtx sender.
        [err...etc...
        Arguments and temporary variables:
                firstArg: 'MessageNotUnderstood:  
LargePositiveInteger>>pixelValueForDepth:'
                secondArg: 4278190081
        Receiver's instance variables:
                outerContext: WorldState>>displayWorldSafely:
                startpc: 73
                numArgs: 2

[:ex | errorHandlerBlock cull: ex description cull: ex receiver] in  
BlockClosure>>ifError:
        Receiver: [aWorld displayWorld]
        Arguments and temporary variables:
                errorHandlerBlock: MessageNotUnderstood:  
LargePositiveInteger>>pixelValueForDep...etc...
                ex: [:err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
        [errCtx := errCt...etc...
        Receiver's instance variables:
                outerContext: WorldState>>displayWorldSafely:
                startpc: 66
                numArgs: 0

BlockClosure>>cull:
        Receiver: [:ex | errorHandlerBlock cull: ex description cull: ex receiver]
        Arguments and temporary variables:
                anArg: MessageNotUnderstood: LargePositiveInteger>>pixelValueForDepth:
        Receiver's instance variables:
                outerContext: BlockClosure>>ifError:
                startpc: 40
                numArgs: 1

[(self tempAt: 2)
                cull: exception] in MethodContext(ContextPart)>>handleSignal:
        Receiver: BlockClosure>>on:do:
        Arguments and temporary variables:
                exception: MessageNotUnderstood:  
LargePositiveInteger>>pixelValueForDepth:
        Receiver's instance variables:
                sender: BlockClosure>>ifError:
                pc: 17
                stackp: 3
                method: (BlockClosure>>#on:do: "a CompiledMethod(88866816)")
                closureOrNil: nil
                receiver: [aWorld displayWorld]

BlockClosure>>ensure:
        Receiver: [(self tempAt: 2)
                cull: exception]
        Arguments and temporary variables:
                aBlock: [self tempAt: 3 put: true]
                complete: nil
                returnValue: nil
        Receiver's instance variables:
                outerContext: MethodContext(ContextPart)>>handleSignal:
                startpc: 90
                numArgs: 0

MethodContext(ContextPart)>>handleSignal:
        Receiver: BlockClosure>>on:do:
        Arguments and temporary variables:
                exception: MessageNotUnderstood:  
LargePositiveInteger>>pixelValueForDepth:
                val: nil
        Receiver's instance variables:
                sender: BlockClosure>>ifError:
                pc: 17
                stackp: 3
                method: (BlockClosure>>#on:do: "a CompiledMethod(88866816)")
                closureOrNil: nil
                receiver: [aWorld displayWorld]

MessageNotUnderstood(Exception)>>signal
        Receiver: MessageNotUnderstood: LargePositiveInteger>>pixelValueForDepth:
        Arguments and temporary variables:

        Receiver's instance variables:
                messageText: nil
                tag: nil
                signalContext: MessageNotUnderstood(Exception)>>signal
                handlerContext: BlockClosure>>on:do:
                outerContext: nil
                message: pixelValueForDepth: 32
                receiver: 4278190081
                reachedDefaultHandler: false

LargePositiveInteger(Object)>>doesNotUnderstand: #pixelValueForDepth:
        Receiver: 4278190081
        Arguments and temporary variables:
                aMessage: pixelValueForDepth: 32
                exception: MessageNotUnderstood:  
LargePositiveInteger>>pixelValueForDepth:
                resumeValue: nil
        Receiver's instance variables:
4278190081

ColorForm>>colormapIfNeededForDepth:
        Receiver: ColorForm(5x9x1)
        Arguments and temporary variables:
                destDepth: 32
                newMap: a Bitmap of length 2
                i: 2
                iLimiT: 2
        Receiver's instance variables:
                bits: a Bitmap of length 9
                width: 5
                height: 9
                depth: 1
                offset: nil
                colors: {(Color transparent). 4278190081}
                cachedDepth: nil
                cachedColormap: nil

ColorForm>>colormapIfNeededFor:
        Receiver: ColorForm(5x9x1)
        Arguments and temporary variables:
                destForm: DisplayScreen(1672x982x32)
                newMap: nil
                color: nil
                pv: nil
                i: nil
                iLimiT: nil
        Receiver's instance variables:
                bits: a Bitmap of length 9
                width: 5
                height: 9
                depth: 1
                offset: nil
                colors: {(Color transparent). 4278190081}
                cachedDepth: nil
                cachedColormap: nil

FormCanvas>>image:at:sourceRect:rule:
        Receiver: a FormCanvas on: DisplayScreen(1672x982x32)
        Arguments and temporary variables:
                aForm: ColorForm(5x9x1)
                aPoint: 689@404
                sourceRect: 0@0 corner: 5@9
                rule: 24
        Receiver's instance variables:
                target: nil
                filterSelector: nil
                origin: 0@0
                clipRect: 544@234 corner: 699@501
                form: DisplayScreen(1672x982x32)
                port: a GrafPort
                shadowColor: nil

FormCanvas(Canvas)>>translucentImage:at:sourceRect:
        Receiver: a FormCanvas on: DisplayScreen(1672x982x32)
        Arguments and temporary variables:
                aForm: ColorForm(5x9x1)
                aPoint: 689@404
                sourceRect: 0@0 corner: 5@9
        Receiver's instance variables:
                target: nil
                filterSelector: nil
                origin: 0@0
                clipRect: 544@234 corner: 699@501
                form: DisplayScreen(1672x982x32)
                port: a GrafPort
                shadowColor: nil

FormCanvas(Canvas)>>translucentImage:at:
        Receiver: a FormCanvas on: DisplayScreen(1672x982x32)
        Arguments and temporary variables:
                aForm: ColorForm(5x9x1)
                aPoint: 689@404
        Receiver's instance variables:
                target: nil
                filterSelector: nil
                origin: 0@0
                clipRect: 544@234 corner: 699@501
                form: DisplayScreen(1672x982x32)
                port: a GrafPort
                shadowColor: nil

ToggleMenuItemMorph>>drawIcon:on:in:
        Receiver: a ToggleMenuItemMorph(17825792)'Help'
        Arguments and temporary variables:
                aForm: ColorForm(5x9x1)
                aCanvas: a FormCanvas on: DisplayScreen(1672x982x32)
                aRectangle: 689@404 corner: 694@413
                iconForm: ColorForm(5x9x1)
        Receiver's instance variables:
                bounds: 549@399 corner: 694@417
                owner: a MenuMorph(415236096)
                submorphs: #()
                fullBounds: 549@399 corner: 694@417
                color: Color black
                extension: a MorphExtension (20447232) [other:  (errorOnDraw -> true)]
                font: a StrikeFont(Bitmap DejaVu Sans 9 14)
                emphasis: 0
                contents: 'Help'
                hasFocus: false
                isEnabled: true
                subMenu: a MenuMorph(37486592)
                isSelected: false
                target: nil
                selector: nil
                arguments: nil
                icon: Form(16x16x32)
                getStateSelector: nil
                enablementSelector: nil
                keyText: nil

ToggleMenuItemMorph>>drawSubMenuMarker:on:in:
        Receiver: a ToggleMenuItemMorph(17825792)'Help'
        Arguments and temporary variables:
                aForm: ColorForm(5x9x1)
                aCanvas: a FormCanvas on: DisplayScreen(1672x982x32)
                aRectangle: 567@401 corner: 694@417
                markerRect: 689@404 corner: 694@413
        Receiver's instance variables:
                bounds: 549@399 corner: 694@417
                owner: a MenuMorph(415236096)
                submorphs: #()
                fullBounds: 549@399 corner: 694@417
                color: Color black
                extension: a MorphExtension (20447232) [other:  (errorOnDraw -> true)]
                font: a StrikeFont(Bitmap DejaVu Sans 9 14)
                emphasis: 0
                contents: 'Help'
                hasFocus: false
                isEnabled: true
                subMenu: a MenuMorph(37486592)
                isSelected: false
                target: nil
                selector: nil
                arguments: nil
                icon: Form(16x16x32)
                getStateSelector: nil
                enablementSelector: nil
                keyText: nil




Reply | Threaded
Open this post in threaded view
|

Re: Issue 3534 in pharo: LargePositiveInteger(Object)>>error

pharo

Comment #1 on issue 3534 by [hidden email]:  
LargePositiveInteger(Object)>>error
http://code.google.com/p/pharo/issues/detail?id=3534

The problem with this bug is that I was hit by it 7 or 8 times since using
the Cog VM. Anytime when opening the world menu.

Unfortunately it is hard to reproduce manually, I can open the world menu  
afterwards without any problem.

The problem I see in the debugger is that instead of returning a Color  
instance (which would understand #pixelValueForDepth:) a large positive  
integer  4278190081 is returned from the expression "(colors at: i)" in the  
method ColorForm>>colormapIfNeededForDepth:




Reply | Threaded
Open this post in threaded view
|

Re: Issue 3534 in pharo: LargePositiveInteger(Object)>>error

pharo
Updates:
        Cc: marcus.denker

Comment #2 on issue 3534 by [hidden email]:  
LargePositiveInteger(Object)>>error
http://code.google.com/p/pharo/issues/detail?id=3534

Didnt have the problem with the latest Cog but it may still be there ...

Suggest to move it to 1.3. (we deliver 1.2 with standard VM, dont we?)
If we see it again we can patch 1.2 anyway.


Reply | Threaded
Open this post in threaded view
|

Re: Issue 3534 in pharo: LargePositiveInteger(Object)>>error

pharo

Comment #3 on issue 3534 by marianopeck: LargePositiveInteger(Object)>>error
http://code.google.com/p/pharo/issues/detail?id=3534

Torsten, can you check if this is the same bug that Mattew reported to  
Eliot? It seems the same bug, in such case, it is a Cog bug and Eliot said  
he was going to release a new VM during the weekend


Reply | Threaded
Open this post in threaded view
|

Re: Issue 3534 in pharo: LargePositiveInteger(Object)>>error

pharo
Updates:
        Labels: -Milestone-1.2 Milestone-1.3

Comment #4 on issue 3534 by [hidden email]:  
LargePositiveInteger(Object)>>error
http://code.google.com/p/pharo/issues/detail?id=3534

ok, I move it to 1.3


Reply | Threaded
Open this post in threaded view
|

Re: Issue 3534 in pharo: LargePositiveInteger(Object)>>error

pharo
Updates:
        Status: Closed

Comment #5 on issue 3534 by [hidden email]:  
LargePositiveInteger(Object)>>error
http://code.google.com/p/pharo/issues/detail?id=3534

I think this is fixed with the latest cog vms