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

Reply via email to