On Wed, 2015-07-22 at 14:55 +0200, stepharo wrote: > Jan do you have a scenario where we can see the performance issue? >
Hmm...actually not reproducible one. Here's the story: It happened me couple times that the CPU (core) usage was 100% when I typed in Nautilus. When I stopped typing, CPU usage went to 5% (which is "normal" IIUC). I saved the image when it exhibited the performance problem, but the other day it failed to open at all. VM crashed before opening the window (log attached if anyone's interested - from the trace it looks like freetype plugin's doing something wrong. Funny enough after not having time for this for couple days, I tried again and the (i) the image does start and (ii) it does no longer exhibit the poor performance. I'm bloody sure nothing changed in my system meanwhile (no VM change, no upgrade of system libraries, etc). The image that crashed used no FFI calls except those done by system as shipped. So in the end something else seems to be broken and Rubric performance could be just a consequence. Maybe I suspected the wrong guy. Sorry about that. Best, Jan > > Le 22/7/15 10:03, Jan Vrany a écrit : > > On Tue, 2015-07-21 at 23:38 +0200, Franck Warlouzet wrote: > > > Hello Jan, > > > > > > On Pharo 5, I don't think so (unless you want to reload the very > > > old > > > commits from nautilus). PluggableTextMorph will be remove so we > > > will > > > not put an option to switch between Rubric or that. > > Right. Is there a way to dig out an older image prior the switch? > > > > > What do not you like with Rubric ? > > It's not that I don't like it, but in my very case it burns > > my CPU. Looks like a performance problem. > > > > Thanks! Jan > > > > > Franck > > > > > > > From: [email protected] > > > > To: [email protected] > > > > Date: Tue, 21 Jul 2015 22:19:05 +0100 > > > > Subject: [Pharo-dev] Disabling Rubric in Nautilus > > > > > > > > Hi there, > > > > > > > > is there a way to disable Rubric in Nautilus and get back > > > > to PluggableTextMorph or whichever beast was used before? > > > > Quick search in settings did not help. > > > > > > > > Jan > > > > > > > >
Segmentation fault Fri Jul 24 13:15:36 2015 /home/jv/Projects/Pharo/5.0/pharo-vm/pharo pharo VM version: 3.9-7 #1 Thu Apr 2 00:51:45 CEST 2015 gcc 4.6.3 [Production ITHB VM] Built from: NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Apr 2 2015 With: NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Apr 2 2015 Revision: https://github.com/pharo-project/pharo-vm.git Commit: 32d18ba0f2db9bee7f3bdbf16bdb24fe4801cfc5 Date: 2015-03-24 11:08:14 +0100 By: Esteban Lorenzano <[email protected]> Jenkins build #14904 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/jv/Projects/Pharo/5.0/pharo-vm/ [default: /home/jv/Projects/Pharo/5.0/pharo-vm/] C stack backtrace & registers: eax 0xffd768a4 ebx 0xffd767c0 ecx 0xffd76858 edx 0xffd7680c edi 0xffd76690 esi 0xffd76690 ebp 0xffd76728 esp 0xffd76774 eip 0xffd76988 *[0xffd76988] /home/jv/Projects/Pharo/5.0/pharo-vm/pharo[0x80a33a2] /home/jv/Projects/Pharo/5.0/pharo-vm/pharo[0x80a3706] linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf76febe0] /usr/lib/i386-linux-gnu/libfreetype.so.6(FT_Stream_ReadULong+0x6e)[0xb6ea540e] /usr/lib/i386-linux-gnu/libfreetype.so.6(+0x52407)[0xb6ee8407] /usr/lib/i386-linux-gnu/libfreetype.so.6(+0x23d8a)[0xb6eb9d8a] /usr/lib/i386-linux-gnu/libfreetype.so.6(+0x10eab)[0xb6ea6eab] /usr/lib/i386-linux-gnu/libfreetype.so.6(FT_Open_Face+0x2d9)[0xb6ea9bb9] /usr/lib/i386-linux-gnu/libfreetype.so.6(FT_New_Memory_Face+0x5a)[0xb6eaa1ca] /home/jv/Projects/Pharo/5.0/pharo-vm/libFT2Plugin.so(primitiveNewMemoryFaceFromExternalMemoryAndIndex+0xfa)[0xf70af13a] /home/jv/Projects/Pharo/5.0/pharo-vm/pharo[0x80799ca] /home/jv/Projects/Pharo/5.0/pharo-vm/pharo(interpret+0x234c)[0x809741c] /home/jv/Projects/Pharo/5.0/pharo-vm/pharo(enterSmalltalkExecutiveImplementation+0x59)[0x809a619] /home/jv/Projects/Pharo/5.0/pharo-vm/pharo(interpret+0x1ee)[0x80952be] /home/jv/Projects/Pharo/5.0/pharo-vm/pharo(main+0x2b2)[0x805ba82] /lib/i386-linux-gnu/i686/cmov/libc.so.6(__libc_start_main+0xf3)[0xf74d7a63] /home/jv/Projects/Pharo/5.0/pharo-vm/pharo[0x805bda1] /home/jv/Projects/Pharo/5.0/pharo-vm/pharo[0x810c90c] Smalltalk stack dump: 0xffd84e54 I [] in FreeTypeFace(FT2Face)>newFaceFromExternalMemory:index: 0xb8d8f240: a(n) FreeTypeFace 0xffd84e6c M BlockClosure>on:do: 0xb984f828: a(n) BlockClosure 0xffd84e98 I FreeTypeFace(FT2Face)>newFaceFromExternalMemory:index: 0xb8d8f240: a(n) FreeTypeFace 0xffd84ec4 I FreeTypeFace>newFaceFromExternalMemory:index: 0xb8d8f240: a(n) FreeTypeFace 0xffd84eec I FreeTypeFace>create 0xb8d8f240: a(n) FreeTypeFace 0xffd84f0c I FreeTypeFace>validate 0xb8d8f240: a(n) FreeTypeFace 0xffd84f2c I FreeTypeFont>face 0xb984f5ec: a(n) FreeTypeFont 0xffd84f68 I FreeTypeFontProvider>fontFor:familyName: 0xb7751b70: a(n) FreeTypeFontProvider 0xffd83dd0 M [] in LogicalFontManager>bestFontFor:whenFindingAlternativeIgnoreAll: 0xb7f17614: a(n) LogicalFontManager 0xffd83df4 M OrderedCollection>do: 0xb7f17620: a(n) OrderedCollection 0xffd83e20 I [] in LogicalFontManager>bestFontFor:whenFindingAlternativeIgnoreAll: 0xb7f17614: a(n) LogicalFontManager 0xffd83e44 M Array(SequenceableCollection)>do: 0xb984e734: a(n) Array 0xffd83e6c I LogicalFontManager>bestFontFor:whenFindingAlternativeIgnoreAll: 0xb7f17614: a(n) LogicalFontManager 0xffd83e94 I LogicalFontManager>bestFontFor: 0xb7f17614: a(n) LogicalFontManager 0xffd83eb8 I LogicalFont>findRealFont 0xb7f175dc: a(n) LogicalFont 0xffd83ed8 I LogicalFont>realFont 0xb7f175dc: a(n) LogicalFont 0xffd83ef8 I LogicalFont>height 0xb7f175dc: a(n) LogicalFont 0xffd83f20 I LazyListMorph>rowAtLocation: 0xb8bda118: a(n) LazyListMorph 0xffd83f44 I LazyListMorph>bottomVisibleRowForCanvas: 0xb8bda118: a(n) LazyListMorph 0xffd83f6c M LazyListMorph>drawOn: 0xb8bda118: a(n) LazyListMorph 0xffd82e04 M FormCanvas(Canvas)>draw: 0xb984da6c: a(n) FormCanvas 0xffd82e20 M FormCanvas(Canvas)>drawMorph: 0xb984da6c: a(n) FormCanvas 0xffd82e40 M [] in LazyListMorph(Morph)>fullDrawOn: 0xb8bda118: a(n) LazyListMorph 0xffd82e58 M FormCanvas>roundCornersOf:in:during: 0xb984da6c: a(n) FormCanvas 0xffd82e7c M FormCanvas(Canvas)>roundCornersOf:during: 0xb984da6c: a(n) FormCanvas 0xffd82ea0 M [] in LazyListMorph(Morph)>fullDrawOn: 0xb8bda118: a(n) LazyListMorph 0xffd82eb8 M BlockClosure>on:do: 0xb984dd04: a(n) BlockClosure 0xffd82ed8 M LazyListMorph(Morph)>fullDrawOn: 0xb8bda118: a(n) LazyListMorph 0xffd82ef4 M FormCanvas(Canvas)>fullDraw: 0xb984da6c: a(n) FormCanvas 0xffd82f10 M FormCanvas(Canvas)>fullDrawMorph: 0xb984da6c: a(n) FormCanvas 0xffd82f30 M [] in TransformMorph>drawSubmorphsOn: 0xb8bda0a8: a(n) TransformMorph 0xffd82f50 M Array(SequenceableCollection)>reverseDo: 0xb8bda190: a(n) Array 0xffd82f6c M [] in TransformMorph>drawSubmorphsOn: 0xb8bda0a8: a(n) TransformMorph 0xffd81e70 I FormCanvas>transformBy:clippingTo:during:smoothing: 0xb984b6e4: a(n) FormCanvas 0xffd81e98 M TransformMorph>drawSubmorphsOn: 0xb8bda0a8: a(n) TransformMorph 0xffd81eb8 M [] in TransformMorph(Morph)>fullDrawOn: 0xb8bda0a8: a(n) TransformMorph 0xffd81ed0 M FormCanvas>roundCornersOf:in:during: 0xb984b6e4: a(n) FormCanvas 0xffd81ef4 M FormCanvas(Canvas)>roundCornersOf:during: 0xb984b6e4: a(n) FormCanvas 0xffd81f18 M [] in TransformMorph(Morph)>fullDrawOn: 0xb8bda0a8: a(n) TransformMorph 0xffd81f30 M BlockClosure>on:do: 0xb984d208: a(n) BlockClosure 0xffd81f50 M TransformMorph(Morph)>fullDrawOn: 0xb8bda0a8: a(n) TransformMorph 0xffd81f6c M FormCanvas(Canvas)>fullDraw: 0xb984b6e4: a(n) FormCanvas 0xffd7fe1c M FormCanvas(Canvas)>fullDrawMorph: 0xb984b6e4: a(n) FormCanvas 0xffd7fe3c M [] in PluggableListMorph(Morph)>drawSubmorphsOn: 0xb8bd9b14: a(n) PluggableListMorph 0xffd7fe5c M Array(SequenceableCollection)>reverseDo: 0xb8d70aac: a(n) Array 0xffd7fe78 M [] in PluggableListMorph(Morph)>drawSubmorphsOn: 0xb8bd9b14: a(n) PluggableListMorph 0xffd7fe98 M PluggableListMorph(Morph)>drawSubmorphsOn: 0xb8bd9b14: a(n) PluggableListMorph 0xffd7feb4 M PluggableListMorph(ScrollPane)>drawSubmorphsOn: 0xb8bd9b14: a(n) PluggableListMorph 0xffd7fed4 M [] in PluggableListMorph(Morph)>fullDrawOn: 0xb8bd9b14: a(n) PluggableListMorph 0xffd7feec M FormCanvas>roundCornersOf:in:during: 0xb984b6e4: a(n) FormCanvas 0xffd7ff10 M FormCanvas(Canvas)>roundCornersOf:during: 0xb984b6e4: a(n) FormCanvas 0xffd7ff34 M [] in PluggableListMorph(Morph)>fullDrawOn: 0xb8bd9b14: a(n) PluggableListMorph 0xffd7ff4c M BlockClosure>on:do: 0xb984c418: a(n) BlockClosure 0xffd7ff6c M PluggableListMorph(Morph)>fullDrawOn: 0xb8bd9b14: a(n) PluggableListMorph 0xffd80e54 M FormCanvas(Canvas)>fullDraw: 0xb984b6e4: a(n) FormCanvas 0xffd80e70 M FormCanvas(Canvas)>fullDrawMorph: 0xb984b6e4: a(n) FormCanvas 0xffd80e90 M [] in SystemWindow(Morph)>drawSubmorphsOn: 0xb8bcf9c0: a(n) SystemWindow 0xffd80eb8 I Array(SequenceableCollection)>reverseDo: 0xb8bdd944: a(n) Array 0xffd80edc I [] in SystemWindow(Morph)>drawSubmorphsOn: 0xb8bcf9c0: a(n) SystemWindow 0xffd80f00 I FormCanvas>clipBy:during: 0xb984a300: a(n) FormCanvas 0xffd80f2c I SystemWindow(Morph)>drawSubmorphsOn: 0xb8bcf9c0: a(n) SystemWindow 0xffd80f4c M [] in SystemWindow(Morph)>fullDrawOn: 0xb8bcf9c0: a(n) SystemWindow 0xffd80f64 M FormCanvas>roundCornersOf:in:during: 0xb984a300: a(n) FormCanvas 0xffd7edd4 M FormCanvas(Canvas)>roundCornersOf:during: 0xb984a300: a(n) FormCanvas 0xffd7edf8 M [] in SystemWindow(Morph)>fullDrawOn: 0xb8bcf9c0: a(n) SystemWindow 0xffd7ee10 M BlockClosure>on:do: 0xb984a5a4: a(n) BlockClosure 0xffd7ee30 M SystemWindow(Morph)>fullDrawOn: 0xb8bcf9c0: a(n) SystemWindow 0xffd7ee4c M FormCanvas(Canvas)>fullDraw: 0xb984a300: a(n) FormCanvas 0xffd7ee70 I FormCanvas(Canvas)>fullDrawMorph: 0xb984a300: a(n) FormCanvas 0xffd7eec4 M [] in WorldState>drawWorld:submorphs:invalidAreasOn: 0xb753a1dc: a(n) WorldState 0xffd7eefc I Rectangle>allAreasOutsideList:startingAt:do: 0xb980d51c: a(n) Rectangle 0xffd7ef28 I Rectangle>allAreasOutsideList:do: 0xb980d51c: a(n) Rectangle 0xffd7ef6c I [] in WorldState>drawWorld:submorphs:invalidAreasOn: 0xb753a1dc: a(n) WorldState 0xffd7ddec M Array(SequenceableCollection)>do: 0xb981a488: a(n) Array 0xffd7de24 I WorldState>drawWorld:submorphs:invalidAreasOn: 0xb753a1dc: a(n) WorldState 0xffd7de5c M [] in WorldState>displayWorld:submorphs: 0xb753a1dc: a(n) WorldState 0xffd7de7c I FormCanvas>roundCornersOf:in:during: 0xb981a358: a(n) FormCanvas 0xffd7dea8 I FormCanvas(Canvas)>roundCornersOf:during: 0xb981a358: a(n) FormCanvas 0xffd7ded8 I WorldState>displayWorld:submorphs: 0xb753a1dc: a(n) WorldState 0xffd7df00 I WorldMorph>displayWorld 0xb77aed00: a(n) WorldMorph 0xffd7df2c I TaskbarMorph(Morph)>snapToEdgeIfAppropriate 0xb773eb28: a(n) TaskbarMorph 0xffd7df4c I TaskbarMorph>updateBounds 0xb773eb28: a(n) TaskbarMorph 0xffd7df6c I [] in WorldMorph(PasteUpMorph)>restoreMainDockingBarDisplay 0xb77aed00: a(n) WorldMorph 0xffd79e2c M Array(SequenceableCollection)>do: 0xb980fe50: a(n) Array 0xffd79e50 I WorldMorph(PasteUpMorph)>restoreMainDockingBarDisplay 0xb77aed00: a(n) WorldMorph 0xffd79e74 I WorldMorph(PasteUpMorph)>restoreMorphicDisplay 0xb77aed00: a(n) WorldMorph 0xffd79e98 I WorldMorph class>startUp 0xb77abb00: a(n) WorldMorph class 0xffd79eb0 M WorldMorph class(Behavior)>startUp: 0xb77abb00: a(n) WorldMorph class 0xffd79ed8 M [] in SmalltalkImage>send:toClassesNamedIn:with: 0xb819a01c: a(n) SmalltalkImage 0xffd79ef0 M BlockClosure>on:do: 0xb980d410: a(n) BlockClosure 0xffd79f10 M SmalltalkImage>logStartUpErrorDuring:into:tryDebugger: 0xb819a01c: a(n) SmalltalkImage 0xffd79f48 M [] in SmalltalkImage>send:toClassesNamedIn:with: 0xb819a01c: a(n) SmalltalkImage 0xffd79f6c M OrderedCollection>do: 0xb753a098: a(n) OrderedCollection 0xffd78e6c I SmalltalkImage>send:toClassesNamedIn:with: 0xb819a01c: a(n) SmalltalkImage 0xffd78e98 I SmalltalkImage>processStartUpList: 0xb819a01c: a(n) SmalltalkImage 0xffd78ec8 I [] in SmalltalkImage>startupImage:snapshotWorked: 0xb819a01c: a(n) SmalltalkImage 0xffd78ee8 M BlockClosure>ensure: 0xb927ff60: a(n) BlockClosure 0xffd78f0c I MorphicUIManager(UIManager)>boot:during: 0xb75ea6d8: a(n) MorphicUIManager 0xffd78f38 I SmalltalkImage>startupImage:snapshotWorked: 0xb819a01c: a(n) SmalltalkImage 0xffd78f68 I SmalltalkImage>snapshot:andQuit: 0xb819a01c: a(n) SmalltalkImage 0xb927f738 s [] in WorldState class>saveAndQuit 0xb927f794 s BlockClosure>ensure: 0xb924d758 s CursorWithMask(Cursor)>showWhile: 0xb924d6ec s WorldState class>saveAndQuit 0xb927f7f0 s [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 0xb927f84c s BlockClosure>ensure: 0xb924d67c s CursorWithMask(Cursor)>showWhile: 0xb924d59c s ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 0xb924d540 s ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 0xb927f904 s ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 0xb927f960 s MouseButtonEvent>sentTo: 0xb927f9bc s ToggleMenuItemMorph(Morph)>handleEvent: 0xb927fa18 s MorphicEventDispatcher>dispatchDefault:with: 0xb927fa74 s MorphicEventDispatcher>handleMouseUp: 0xb927fad0 s MouseButtonEvent>sentTo: 0xb927fb2c s [] in MorphicEventDispatcher>dispatchEvent:with: 0xb927fb88 s BlockClosure>ensure: 0xb924d4c0 s MorphicEventDispatcher>dispatchEvent:with: 0xb927fbe4 s ToggleMenuItemMorph(Morph)>processEvent:using: 0xb924d3dc s MorphicEventDispatcher>dispatchDefault:with: 0xb924d438 s MorphicEventDispatcher>handleMouseUp: 0xb927f3fc s MouseButtonEvent>sentTo: 0xb927f458 s [] in MorphicEventDispatcher>dispatchEvent:with: 0xb927f4b4 s BlockClosure>ensure: 0xb924d35c s MorphicEventDispatcher>dispatchEvent:with: 0xb927f510 s MenuMorph(Morph)>processEvent:using: 0xb927f56c s MenuMorph(Morph)>processEvent: 0xb927f5c8 s MenuMorph>handleFocusEvent: 0xb927f624 s [] in HandMorph>sendFocusEvent:to:clear: 0xb927f680 s BlockClosure>on:do: 0xb924d25c s WorldMorph(PasteUpMorph)>becomeActiveDuring: 0xb924d1e4 s HandMorph>sendFocusEvent:to:clear: 0xb924d2d4 s HandMorph>sendEvent:focus:clear: 0xb924d170 s HandMorph>sendMouseEvent: 0xb927fc40 s HandMorph>handleEvent: 0xb927fc9c s HandMorph>processEvents 0xb927fcf8 s [] in WorldState>doOneCycleNowFor: 0xb927fd54 s Array(SequenceableCollection)>do: 0xb927fdb0 s WorldState>handsDo: 0xb924cfec s WorldState>doOneCycleNowFor: 0xb927fe0c s WorldState>doOneCycleFor: 0xb927fe68 s WorldMorph>doOneCycle 0xb8d854e8 s [] in MorphicUIManager>spawnNewProcess 0xb8d853d4 s [] in BlockClosure>newProcess Most recent primitives basicNew @ @ @ @ basicNew @ @ shallowCopy basicNew @ @ basicNew @ @ truncated truncated truncated @ @ @ basicNew @ @ @ @ @ basicNew @ @ @ @ @ basicNew @ @ @ @ @ basicNew @ @ basicNew @ @ basicNew @ @ @ @ @ basicNew @ @ basicNew @ @ basicNew @ @ @ copyBits @ @ basicNew @ @ basicNew @ @ basicNew @ @ @ basicNew new: @ basicNew @ @ at:put: @ basicNew @ @ at:put: @ @ basicNew @ @ at:put: @ @ basicNew @ @ at:put: copyBits copyBits copyBits copyBits @ @ basicNew @ @ copyBits copyBits @ @ @ basicNew @ @ @ @ basicNew @ @ basicNew @ @ basicNew @ @ @ perform:with: perform:with: @ truncated truncated @ @ @ @ basicNew @ @ @ @ basicNew @ @ shallowCopy basicNew truncated truncated truncated @ @ basicNew @ @ truncated truncated truncated ~= @ @ @ basicNew @ @ @ @ @ basicNew @ @ @ @ basicNew @ @ basicNew @ perform:with: @ basicNew @ @ @ copyBits @ @ @ basicNew @ @ @ basicNew new: value: value: value basicNew value primCurrentLibrary stringHash:initialHash: compare:with:collated: basicNew new: value: at:put: value: at:put: at:put: at:put: value:value: sqrt truncated truncated bitShiftMagnitude: digitLength digitAt: timesTwoPower: value:value: truncated truncated truncated truncated bitShiftMagnitude: timesTwoPower: truncated truncated truncated truncated truncated truncated truncated truncated truncated truncated bitShiftMagnitude: timesTwoPower: basicNew someInstance nextInstance basicNew primUTCMicrosecondsClock * basicNew primOffset basicNew digitCompare: // digitAdd: normalize \\ digitCompare: // \\ value: value primNewFaceFromExternalMemory:size:index: stack page bytes 4096 available headroom 3300 minimum unused headroom 3528 (Segmentation fault) ./pharo-ui: line 11: 19134 Aborted "$DIR"/"pharo-vm/pharo" "$@" Linux sao 4.0.0-2-amd64 #1 SMP Debian 4.0.8-1 (2015-07-11) x86_64 GNU/Linux
