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 |
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 |
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 > |
2016-01-08 21:01 GMT+01:00 stepharo <[hidden email]>: thanks hilaire. Do you have the changes file, too?
|
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 |
2016-01-08 23:20 GMT+01:00 Hilaire <[hidden email]>: Le 08/01/2016 21:31, 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. opal_drgeo.cs (4K) Download Attachment |
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 |
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 |
Free forum by Nabble | Edit this page |