Hi Marcus Roberto sent this mail to the Fuel-dev list. When we looked at the problem we noticed that serialization fails because of a corrupt BlockClosure. Since that's not really our territorry Mariano suggested to forward this to you.
The image with the corrupt BlockClosure is available here: https://dl.dropboxusercontent.com/u/6281855/DFlow-SubscriptOutOfBounds.zip. To see the stack, right click on the only entry in the right window and click "export session". You'll find the corrupt BlockClosure at BlockClosure>>fuelAccept: @Roberto Is it possible to reproduce the stack with a new session? Or did this only happen once? Cheers, Max Begin forwarded message: > From: Mariano Martinez Peck <[email protected]> > Subject: Re: [Pharo-fuel] [Fuel] SubscriptOutOfBounds: 27 > Date: 23. Mai 2013 14:23:45 MESZ > To: The Fuel Project <[email protected]> > Reply-To: The Fuel Project <[email protected]> > > Indeed, it would be nice if you can known which CompiledMethod and > blockclosure are having the problem. Not only the source code but the real > bytecodes. > Also, can you isolate and just try to serialize them alone and reproduce the > problem? In other words, a reproducible test case? :) > Thanks! > > > On Thu, May 23, 2013 at 8:41 AM, Max Leske <[email protected]> wrote: > What's the compiled method? Is it a special one? Which selector in which > class? > > Max > > On 23.05.2013, at 12:45, "[email protected]" <[email protected]> > wrote: > > > Hi, > > > > While using Fuel in a 2.0 image to serialize some objects (including > > CompiledMethods) I'm getting this error: SubscriptOutOfBounds: 27. > > > > I spent hours in the debugger before writing this email, but I'm not able > > to figure out why this is happening. I attach the full stack of the error > > (STACK#1). > > > > I understood that it has something to do with a particular CompiledMethod > > in my image and/or a BlockClosure which for some reason cannot be printed > > (i.e., the printString returns <error in printString: evaluate "self > > printString" to debug>) and when I try to printString to debug I got the > > STACK#2 which in turn does not bring me to any possible solution. > > > > Hope some of you will have an intuition on that or at least tell me where > > to look or how to script a possible workaround. > > > > Thanks in advance, > > Roby > > > > ############################################################################################ > > ######################################### STACK#1 > > ########################################### > > ########################################################################################### > > CompiledMethod(Object)>>errorSubscriptBounds: > > CompiledMethod(Object)>>at: > > InstructionStream>>interpretNextInstructionFor: > > CompiledMethod>>abstractBytecodeMessageAt: in Block: [(InstructionStream > > new method: self pc: pc)... > > BlockClosure>>on:do: > > CompiledMethod>>abstractBytecodeMessageAt: > > BlockClosure>>blockCreationBytecodeMessage > > BlockClosure>>endPC > > BlockClosure>>abstractBytecodeMessagesDo: > > BlockClosure>>isClean > > BlockClosure>>shouldBeSubstitutedByCleanCopy > > BlockClosure>>fuelAccept: > > FLFullGeneralMapper(FLLightGeneralMapper)>>mapAndTrace: > > FLFullGlobalMapper>>mapAndTrace: in Block: [(anObject class == > > CompiledMethod... > > FLLargeIdentityDictionary>>at:ifAbsent: > > FLFullGlobalMapper>>mapAndTrace: > > FLPluggableSubstitutionMapper>>mapAndTrace: > > FLPluggableSubstitutionMapper>>mapAndTrace: > > FLAnalysis>>mapAndTrace: > > FLAnalysis>>run > > FLAnalyzer>>setDefaultAnalysis in Block: [:anObject | (FLAnalysis... > > FLAnalyzer>>analysisFor: > > FLSerialization>>analysisStep > > FLSerialization>>run > > DFSerializer(FLSerializer)>>setDefaultSerialization in Block: [:anObject > > :anEncoder | (FLSerialization... > > DFSerializer(FLSerializer)>>serialize:on: in Block: [:anEncoder | ... > > FLEncoder class>>on:globalEnvironment:do: in Block: [aBlock value: > > anEncoder] > > BlockClosure>>ensure: > > FLEncoder class>>on:globalEnvironment:do: > > DFSerializer(FLSerializer)>>serialize:on: > > > > > > ############################################################################################ > > ######################################### STACK#2 > > ########################################### > > ############################################################################################ > > Decompiler(Object)>>error: > > Decompiler>>decompileBlock: > > BlockClosure>>decompile > > BlockClosure>>printOn: > > BlockClosure(Object)>>printStringLimitedTo: in Block: [:s | self printOn: s] > > String class(SequenceableCollection class)>>streamContents:limitedTo: > > BlockClosure(Object)>>printStringLimitedTo: > > BlockClosure(Object)>>printString > > BlockClosure>>DoIt > > Compiler>>evaluate:in:to:notifying:ifFail:logged: > > SmalltalkEditor>>evaluateSelectionAndDo: in Block: [rcvr class > > evaluatorClass new... > > BlockClosure>>on:do: > > SmalltalkEditor>>evaluateSelectionAndDo: > > SmalltalkEditor>>evaluateSelection > > PluggableTextMorph>>doIt in Block: [textMorph editor evaluateSelection] > > PluggableTextMorph>>handleEdit: in Block: [result := editBlock value] > > TextMorphForEditView(TextMorph)>>handleEdit: > > PluggableTextMorph>>handleEdit: > > PluggableTextMorph>>doIt > > SmalltalkEditor class>>buildSmalltalkEditorKeymappingsOn: in Block: [:morph > > | morph doIt] > > BlockClosure>>cull: > > BlockClosure>>cull:cull: > > BlockClosure>>cull:cull:cull: > > KMCategoryTarget>>completeMatch:buffer: > > KMKeymap>>notifyCompleteMatchTo:buffer: in Block: [:l | l completeMatch: > > self buffer: aBuffer] > > Array(SequenceableCollection)>>do: > > KMKeymap>>notifyCompleteMatchTo:buffer: > > KMKeymap>>onMatchWith:notify:andDo: > > KMCategory>>onMatchWith:notify:andDo: in Block: [:entry | entry... > > Set>>do: > > > > > > > > _______________________________________________ > > Pharo-fuel mailing list > > [email protected] > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel > > _______________________________________________ > Pharo-fuel mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel > > > > -- > Mariano > http://marianopeck.wordpress.com > _______________________________________________ > Pharo-fuel mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel
