[Pharo-users] Crash or locked VM

Hilaire hilaire at drgeo.eu
Thu Jan 7 10:48:56 EST 2016


What is really strange in the VM crash, is I can't even step in the
recursive block. When stepping in the tree call (last line of the script
bellow), the VM crash.


| canvas tree angl angr fac|
canvas := DrGeoCanvas new fullscreen.
fac := (canvas freeValue: 2/3) hide.
angl := (canvas freeValue: 2.8) hide.
angr := (canvas freeValue: -2.8) hide.

tree := [ ].
tree := [ :a :b :k | | ab  m v bm lbc rbc lb rb mb |
    "construction of the tree"
    ab := canvas segment: a to: b.
    m := (canvas middleOf: ab) hide.
    v := (canvas vector: b to: m) hide.
    bm := (canvas scale:  ab center: b factor: fac) hide.
    lbc := canvas rotate: bm center: b angle: angr.
    rbc := canvas rotate: bm center:  b angle: angl.
    canvas translate:  lbc vector: v.
    lb := (canvas rotate: m center: b angle: angr) .
    rb := (canvas rotate: m center: b angle: angl) .
    mb := (canvas translate: rb vector: v) .
    k > 0 ifTrue: [        
        tree value: m value: mb value: k - 1.
        tree value: b value: lb value: k - 1.
        tree value: b value: rb value: k - 1]].
tree value:  0 at 0 value: 0 at 6 value: 5



Crash dump:
last object overwritten

/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/pharo
pharo VM version: 3.9-7 #1 Sat Jun 14 17:26:13 CEST 2014 gcc 4.6.3
[Production ITHB VM]
Built from: NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.20
uuid: cf2aeeee-897d-48fd-8251-6789dd21d958 Jun 14 2014
With: NBCogit NativeBoost-CogPlugin-EstebanLorenzano.20 uuid:
cf2aeeee-897d-48fd-8251-6789dd21d958 Jun 14 2014
Revision: https://github.com/pharo-project/pharo-vm.git Commit:
0e8bbfbaeb03237fa6bb63ba834773fab18ca307 Date: 2014-06-14 12:20:21 -0300
By: Esteban Lorenzano <estebanlm at gmail.com> Jenkins build #14833
Build host: Linux pharo-linux 3.2.0-31-generic-pae #50-Ubuntu SMP Fri
Sep 7 16:39:45 UTC 2012 i686 i686 i386 GNU/Linux
plugin path:
/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux
[default:
/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/]


C stack backtrace & registers:
*/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/pharo[0x809fc8c]
/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/pharo(error+0x17)[0x809fe97]
/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/pharo[0x8074a98]
/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/pharo[0x8074bf0]
/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/pharo(interpret+0x2de0)[0x8093640]
/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/pharo(enterSmalltalkExecutiveImplementation+0x59)[0x8095d79]
/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/pharo(interpret+0x1de)[0x8090a3e]
/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/pharo(main+0x2b2)[0x805b842]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xf74dfa83]
/home/hilaire/Travaux/Developpement/DrGeoII/trunk/build/tmp/DrGeo.appCrash/Contents/Linux/pharo[0x805bb61]
[0x0]


Smalltalk stack dump:
0xffcd7858 I EventManager class>actionMapFor: 0xb4cc1a40: a(n)
EventManager class
0xffcd787c I DebugSession(Object)>actionMap 0xb65028a8: a(n) DebugSession
0xffcd78a0 I DebugSession(Object)>actionForEvent: 0xb65028a8: a(n)
DebugSession
0xffcd78c4 I DebugSession(Object)>triggerEvent: 0xb65028a8: a(n)
DebugSession
0xffcd78e8 I DebugSession>stepInto: 0xb65028a8: a(n) DebugSession
0xffcd7904 M StepIntoDebugAction>executeAction 0xb676297c: a(n)
StepIntoDebugAction
0xffcd7924 I StepIntoDebugAction(DebugAction)>execute 0xb676297c: a(n)
StepIntoDebugAction
0xffcd7940 M [] in SpecDebugActionButton>update 0xb6768a38: a(n)
SpecDebugActionButton
0xffcd7960 I SpecDebugActionButton(ButtonModel)>performAction
0xb6768a38: a(n) SpecDebugActionButton
0xffcd797c M MorphicButtonAdapter>action 0xb677ed78: a(n)
MorphicButtonAdapter
0xffcd799c I PluggableButtonMorph>performAction: 0xb677edac: a(n)
PluggableButtonMorph
0xffcd6814 M [] in PluggableButtonMorph>mouseUp: 0xb677edac: a(n)
PluggableButtonMorph
0xffcd6838 M Array(SequenceableCollection)>do: 0xb6834688: a(n) Array
0xffcd6858 M PluggableButtonMorph>mouseUp: 0xb677edac: a(n)
PluggableButtonMorph
0xffcd6884 I PluggableButtonMorph(Morph)>handleMouseUp: 0xb677edac: a(n)
PluggableButtonMorph
0xffcd68a0 M MouseButtonEvent>sentTo: 0xb6834660: a(n) MouseButtonEvent
0xffcd68bc M PluggableButtonMorph(Morph)>handleEvent: 0xb677edac: a(n)
PluggableButtonMorph
0xffcd68d8 M PluggableButtonMorph(Morph)>handleFocusEvent: 0xb677edac:
a(n) PluggableButtonMorph
0xffcd6900 M [] in HandMorph>sendFocusEvent:to:clear: 0xb4f45f38: a(n)
HandMorph
0xffcd691c M BlockClosure>on:do: 0xb68345c8: a(n) BlockClosure
0xffcd6948 M WorldMorph(PasteUpMorph)>becomeActiveDuring: 0xb4f45e50:
a(n) WorldMorph
0xffcd696c M HandMorph>sendFocusEvent:to:clear: 0xb4f45f38: a(n) HandMorph
0xffcd6994 M HandMorph>sendEvent:focus:clear: 0xb4f45f38: a(n) HandMorph
0xffcd985c M HandMorph>sendMouseEvent: 0xb4f45f38: a(n) HandMorph
0xffcd9888 M HandMorph>handleEvent: 0xb4f45f38: a(n) HandMorph
0xffcd98b4 M HandMorph>processEvents 0xb4f45f38: a(n) HandMorph
0xffcd98cc M [] in WorldState>doOneCycleNowFor: 0xb4f45e84: a(n) WorldState
0xffcd98f0 M Array(SequenceableCollection)>do: 0xb4f45fb4: a(n) Array
0xffcd990c M WorldState>handsDo: 0xb4f45e84: a(n) WorldState
0xffcd9928 M WorldState>doOneCycleNowFor: 0xb4f45e84: a(n) WorldState
0xffcd9944 M WorldState>doOneCycleFor: 0xb4f45e84: a(n) WorldState
0xffcd9960 M WorldMorph>doOneCycle 0xb4f45e50: a(n) WorldMorph
0xffcd9980 I [] in MorphicUIManager>spawnNewProcess 0xb4fff474: a(n)
MorphicUIManager
0xffcd99a0 I [] in BlockClosure>newProcess 0xb648654c: a(n) BlockClosure

Most recent primitives
basicNew
@
@
@
basicNew
basicNew
@
@
basicNew
@
@
@
basicNew
basicNew
@
@
basicNew
@
@
@
basicNew
basicNew
@
@
basicNew
@
@
@
basicNew
@
@
basicNew
truncated
truncated
@
truncated
truncated
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
@
basicNew
basicNew
@
@
basicNew
@
@
@
basicNew
basicNew
@
@
basicNew
@
@
@
basicNew
basicNew
@
@
basicNew
@
@
@
basicNew
@
@
basicNew
truncated
truncated
@
truncated
truncated
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
@
basicNew
basicNew
@
@
basicNew
@
@
@
basicNew
basicNew
@
@
basicNew
@
@
@
basicNew
basicNew
@
@
basicNew
@
@
@
basicNew
@
@
basicNew
truncated
truncated
@
truncated
truncated
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
perform:
at:
objectAt:
new:
at:
stackp:
at:put:
at:
stackp:
at:
stackp:
at:
stackp:
objectAt:
objectAt:
basicNew:
stackp:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:put:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
at:
stackp:
at:put:
at:
at:
at:
at:
at:
at:
stackp:
at:put:
at:

stack page bytes 4096 available headroom 3300 minimum unused headroom 3492

    (last object overwritten)
Abandon


Le 05/01/2016 22:11, Hilaire a écrit :
> Hi,
>
> I have a situation with a recursive Dr. Geo script where the image crash
> or get locked (Can't hold on the image).
> I tried with latest VM as detailed in the joined crash dump.
>
> I did not get similar problem with other recursive script. So I may have
> very special interaction between the objects, but I did not find out.
>
> It may also be related to Morph because when instantiating first the
> canvas and its window (2nd line of the script), then the rest of the
> script, it does not crash.
>
> The crashing image itself can be found there in case of usefulness
> https://www.dropbox.com/s/rur8ayt8eon6mab/drgeo.image.zip?dl=0
>
> When not crashing it outputs this cherry tree.
>
> Thanks
>
> Hilaire
>


-- 
Dr. Geo
http://drgeo.eu






More information about the Pharo-users mailing list