On 21. Oct 2017, at 20:30, Stephane Ducasse <stepharo.self@gmail.com> wrote:
Hey!
Thanks thomas we should find the problem.
my CI started to suffer from this too (and I have one where it is broken and now one where I can reproduce it). I started the macOS VM with --trace[1] and have the attached the trace. What is note-worthy: 1.) FT2Handle class>>#startUp: isn't called. Which means FreeTypeFace>>#beNull has not been called yet! (GlobalIdentifier, Delay, DelaySpinScheduler, ProcessorScheduler seem to have went through >>#startUp:) 2.) No one calls >>#fileContentsExternalMemory: 3.) We touch old memory and crash! FreeTypeGlyphRenderer class>current FreeTypeSubPixelAntiAliasedGlyphRenderer>subGlyphOf:colorValue:mono:subpixelPosition:font: FreeTypeSubPixelAntiAliasedGlyphRenderer>renderStretchedGlyph:depth:subpixelPosition:font: ... FreeTypeFont>face FreeTypeFace>validate SmalltalkImage>session SessionManager class>default SessionManager>currentSession SmalltalkImage>session FreeTypeFace>create FreeTypeFace(FT2Face)>newFaceFromExternalMemory:index: I don't know what the actions should be? * Don't touch anything with fonts in the start-up path? * Run FT2Handle class >> #startUp earlier? * Pass the ByteArray to FreeTypeFace and let it pin it to memory? I think FreeTypeExternalMemory could go away with Spur? * Reset FreeTypeFace instVar fileContentsExternalMemory in >>#beNull? * Throw away all FreeTypeFace when we have a new Session? I think implementing: FreeTypeExternalMemory class >> #bytes: aByteArray ^(aByteArray copy) pin; yourself could solve most of it? (We can argue about the copy...) holger [1] Well it is broken as VMOPTIONOBJ adds the "-" to the front but all code that is using numbers do not handle the extra digit in sqSqueakOSXApplication.m. Maybe somebody beats me with a PR for it. ;)