Crash or locked VM

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

Crash or locked VM

HilaireFernandes
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


CrashDump.txt (5K) Download Attachment
Tree.png (117K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Crash or locked VM

HilaireFernandes
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@0 value: 0@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 <[hidden email]> 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



Reply | Threaded
Open this post in threaded view
|

Re: Crash or locked VM

stepharo
In reply to this post by HilaireFernandes
thanks hilaire.

Stef

Le 5/1/16 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
>


Reply | Threaded
Open this post in threaded view
|

Re: Crash or locked VM

Nicolai Hess-3-2


2016-01-08 21:01 GMT+01:00 stepharo <[hidden email]>:
thanks hilaire.

Stef

Le 5/1/16 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

Do you have the changes file, too?

 


When not crashing it outputs this cherry tree.

Thanks

Hilaire




Reply | Threaded
Open this post in threaded view
|

Re: Crash or locked VM

HilaireFernandes
Le 08/01/2016 21:31, Nicolai Hess a écrit :
>
>
>         The crashing image itself can be found there in case of usefulness
>         https://www.dropbox.com/s/rur8ayt8eon6mab/drgeo.image.zip?dl=0
>
>
> Do you have the changes file, too?

Here: https://www.dropbox.com/s/dwg99xmvtgak10o/DrGeoCrashVM.zip?dl=0

Thanks

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



Reply | Threaded
Open this post in threaded view
|

Re: Crash or locked VM

Nicolai Hess-3-2


2016-01-08 23:20 GMT+01:00 Hilaire <[hidden email]>:
Le 08/01/2016 21:31, Nicolai Hess a écrit :
>
>
>         The crashing image itself can be found there in case of usefulness
>         https://www.dropbox.com/s/rur8ayt8eon6mab/drgeo.image.zip?dl=0
>
>
> Do you have the changes file, too?

Here: https://www.dropbox.com/s/dwg99xmvtgak10o/DrGeoCrashVM.zip?dl=0

Thanks


Hi Hilaire,

this is fixed in pharo4.0 and pharo5.0 but not in pharo3.0
I modified the changeset for pharo4.0 to make it loadable in pharo3.0
But I did not looked further on the code changes, maybe it won't fully work.
Find attached the changeset. You have to switch compiler class before and after loading this.

SmalltalkImage compilerClass: Compiler.
'opal_drgeo.cs' asFileReference fileIn.
SmalltalkImage compilerClass: OpalCompiler.


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





opal_drgeo.cs (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Crash or locked VM

HilaireFernandes
Le 09/01/2016 00:30, Nicolai Hess a écrit :

> Hi Hilaire,
>
> I think this is the same bug as
> https://pharo.fogbugz.com/f/cases/13854/frameSize-calculated-wrongly-for-lineSegmentsDo
>
> this is fixed in pharo4.0 and pharo5.0 but not in pharo3.0
> I modified the changeset for pharo4.0 to make it loadable in pharo3.0
> But I did not looked further on the code changes, maybe it won't fully
> work.
> Find attached the changeset. You have to switch compiler class before
> and after loading this.
>
> SmalltalkImage compilerClass: Compiler.
> 'opal_drgeo.cs' asFileReference fileIn.
> SmalltalkImage compilerClass: OpalCompiler.
>
>

It works!
Ouf! Reading at the issue , that's quite an important one. Thanks for
the retro-fix for Pharo3. It is important for people still in mark3 not
yet migrated to subsequent release

Hilaire


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



Reply | Threaded
Open this post in threaded view
|

Re: Crash or locked VM

HilaireFernandes
With the fix I explored a bit further the construction tree with the
Athletic tree
https://www.facebook.com/DrGeoLibre/videos/895237543929818/ ;)


Le 09/01/2016 10:30, Hilaire a écrit :

> Le 09/01/2016 00:30, Nicolai Hess a écrit :
>> Hi Hilaire,
>>
>> I think this is the same bug as
>> https://pharo.fogbugz.com/f/cases/13854/frameSize-calculated-wrongly-for-lineSegmentsDo
>>
>> this is fixed in pharo4.0 and pharo5.0 but not in pharo3.0
>> I modified the changeset for pharo4.0 to make it loadable in pharo3.0
>> But I did not looked further on the code changes, maybe it won't fully
>> work.
>> Find attached the changeset. You have to switch compiler class before
>> and after loading this.
>>
>> SmalltalkImage compilerClass: Compiler.
>> 'opal_drgeo.cs' asFileReference fileIn.
>> SmalltalkImage compilerClass: OpalCompiler.
>>
>>
> It works!
> Ouf! Reading at the issue , that's quite an important one. Thanks for
> the retro-fix for Pharo3. It is important for people still in mark3 not
> yet migrated to subsequent release
>
> Hilaire
>
>

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