<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Hi Marcus</div><div><br></div><div>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.</div><div><br></div><div>The image with the corrupt BlockClosure is available here: <a href="https://dl.dropboxusercontent.com/u/6281855/DFlow-SubscriptOutOfBounds.zip">https://dl.dropboxusercontent.com/u/6281855/DFlow-SubscriptOutOfBounds.zip</a>.</div><div>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:</div><div><br></div><div>@Roberto</div><div>Is it possible to reproduce the stack with a new session? Or did this only happen once?</div><div><br></div><div><br></div>Cheers,<div>Max</div><div><br><div><br><div>Begin forwarded message:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1.0);"><b>From: </b></span><span style="font-family:'Helvetica'; font-size:medium;">Mariano Martinez Peck <<a href="mailto:marianopeck@gmail.com">marianopeck@gmail.com</a>><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1.0);"><b>Subject: </b></span><span style="font-family:'Helvetica'; font-size:medium;"><b>Re: [Pharo-fuel] [Fuel] SubscriptOutOfBounds: 27</b><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1.0);"><b>Date: </b></span><span style="font-family:'Helvetica'; font-size:medium;">23. Mai 2013 14:23:45 MESZ<br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1.0);"><b>To: </b></span><span style="font-family:'Helvetica'; font-size:medium;">The Fuel Project <<a href="mailto:pharo-fuel@lists.gforge.inria.fr">pharo-fuel@lists.gforge.inria.fr</a>><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1.0);"><b>Reply-To: </b></span><span style="font-family:'Helvetica'; font-size:medium;">The Fuel Project <<a href="mailto:pharo-fuel@lists.gforge.inria.fr">pharo-fuel@lists.gforge.inria.fr</a>><br></span></div><br><div dir="ltr">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.<div>Also, can you isolate and just try to serialize them alone and reproduce the problem? In other words, a reproducible test case? :)</div>
<div>Thanks!</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 23, 2013 at 8:41 AM, Max Leske <span dir="ltr"><<a href="mailto:maxleske@gmail.com" target="_blank">maxleske@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">What's the compiled method? Is it a special one? Which selector in which class?<br>
<span class="HOEnZb"><font color="#888888"><br>
Max<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On 23.05.2013, at 12:45, "<a href="mailto:roberto.minelli@usi.ch">roberto.minelli@usi.ch</a>" <<a href="mailto:roberto.minelli@usi.ch">roberto.minelli@usi.ch</a>> wrote:<br>
<br>
> Hi,<br>
><br>
> While using Fuel in a 2.0 image to serialize some objects (including CompiledMethods) I'm getting this error: SubscriptOutOfBounds: 27.<br>
><br>
> 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).<br>
><br>
> 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.<br>
><br>
> 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.<br>
><br>
> Thanks in advance,<br>
> Roby<br>
><br>
> ############################################################################################<br>
> ######################################### STACK#1 ###########################################<br>
> ###########################################################################################<br>
> CompiledMethod(Object)>>errorSubscriptBounds:<br>
> CompiledMethod(Object)>>at:<br>
> InstructionStream>>interpretNextInstructionFor:<br>
> CompiledMethod>>abstractBytecodeMessageAt: in Block: [(InstructionStream new method: self pc: pc)...<br>
> BlockClosure>>on:do:<br>
> CompiledMethod>>abstractBytecodeMessageAt:<br>
> BlockClosure>>blockCreationBytecodeMessage<br>
> BlockClosure>>endPC<br>
> BlockClosure>>abstractBytecodeMessagesDo:<br>
> BlockClosure>>isClean<br>
> BlockClosure>>shouldBeSubstitutedByCleanCopy<br>
> BlockClosure>>fuelAccept:<br>
> FLFullGeneralMapper(FLLightGeneralMapper)>>mapAndTrace:<br>
> FLFullGlobalMapper>>mapAndTrace: in Block: [(anObject class == CompiledMethod...<br>
> FLLargeIdentityDictionary>>at:ifAbsent:<br>
> FLFullGlobalMapper>>mapAndTrace:<br>
> FLPluggableSubstitutionMapper>>mapAndTrace:<br>
> FLPluggableSubstitutionMapper>>mapAndTrace:<br>
> FLAnalysis>>mapAndTrace:<br>
> FLAnalysis>>run<br>
> FLAnalyzer>>setDefaultAnalysis in Block: [:anObject | (FLAnalysis...<br>
> FLAnalyzer>>analysisFor:<br>
> FLSerialization>>analysisStep<br>
> FLSerialization>>run<br>
> DFSerializer(FLSerializer)>>setDefaultSerialization in Block: [:anObject :anEncoder | (FLSerialization...<br>
> DFSerializer(FLSerializer)>>serialize:on: in Block: [:anEncoder | ...<br>
> FLEncoder class>>on:globalEnvironment:do: in Block: [aBlock value: anEncoder]<br>
> BlockClosure>>ensure:<br>
> FLEncoder class>>on:globalEnvironment:do:<br>
> DFSerializer(FLSerializer)>>serialize:on:<br>
><br>
><br>
> ############################################################################################<br>
> ######################################### STACK#2 ###########################################<br>
> ############################################################################################<br>
> Decompiler(Object)>>error:<br>
> Decompiler>>decompileBlock:<br>
> BlockClosure>>decompile<br>
> BlockClosure>>printOn:<br>
> BlockClosure(Object)>>printStringLimitedTo: in Block: [:s | self printOn: s]<br>
> String class(SequenceableCollection class)>>streamContents:limitedTo:<br>
> BlockClosure(Object)>>printStringLimitedTo:<br>
> BlockClosure(Object)>>printString<br>
> BlockClosure>>DoIt<br>
> Compiler>>evaluate:in:to:notifying:ifFail:logged:<br>
> SmalltalkEditor>>evaluateSelectionAndDo: in Block: [rcvr class evaluatorClass new...<br>
> BlockClosure>>on:do:<br>
> SmalltalkEditor>>evaluateSelectionAndDo:<br>
> SmalltalkEditor>>evaluateSelection<br>
> PluggableTextMorph>>doIt in Block: [textMorph editor evaluateSelection]<br>
> PluggableTextMorph>>handleEdit: in Block: [result := editBlock value]<br>
> TextMorphForEditView(TextMorph)>>handleEdit:<br>
> PluggableTextMorph>>handleEdit:<br>
> PluggableTextMorph>>doIt<br>
> SmalltalkEditor class>>buildSmalltalkEditorKeymappingsOn: in Block: [:morph | morph doIt]<br>
> BlockClosure>>cull:<br>
> BlockClosure>>cull:cull:<br>
> BlockClosure>>cull:cull:cull:<br>
> KMCategoryTarget>>completeMatch:buffer:<br>
> KMKeymap>>notifyCompleteMatchTo:buffer: in Block: [:l | l completeMatch: self buffer: aBuffer]<br>
> Array(SequenceableCollection)>>do:<br>
> KMKeymap>>notifyCompleteMatchTo:buffer:<br>
> KMKeymap>>onMatchWith:notify:andDo:<br>
> KMCategory>>onMatchWith:notify:andDo: in Block: [:entry | entry...<br>
> Set>>do:<br>
><br>
><br>
><br>
> _______________________________________________<br>
> Pharo-fuel mailing list<br>
> <a href="mailto:Pharo-fuel@lists.gforge.inria.fr">Pharo-fuel@lists.gforge.inria.fr</a><br>
> <a href="http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel" target="_blank">http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel</a><br>
<br>
_______________________________________________<br>
Pharo-fuel mailing list<br>
<a href="mailto:Pharo-fuel@lists.gforge.inria.fr">Pharo-fuel@lists.gforge.inria.fr</a><br>
<a href="http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel" target="_blank">http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Mariano<br><a href="http://marianopeck.wordpress.com/" target="_blank">http://marianopeck.wordpress.com</a><br>
</div>
_______________________________________________<br>Pharo-fuel mailing list<br><a href="mailto:Pharo-fuel@lists.gforge.inria.fr">Pharo-fuel@lists.gforge.inria.fr</a><br>http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel<br></blockquote></div><br></div></body></html>