<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:&nbsp;<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&gt;&gt;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 &lt;<a href="mailto:marianopeck@gmail.com">marianopeck@gmail.com</a>&gt;<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 &lt;<a href="mailto:pharo-fuel@lists.gforge.inria.fr">pharo-fuel@lists.gforge.inria.fr</a>&gt;<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 &lt;<a href="mailto:pharo-fuel@lists.gforge.inria.fr">pharo-fuel@lists.gforge.inria.fr</a>&gt;<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">&lt;<a href="mailto:maxleske@gmail.com" target="_blank">maxleske@gmail.com</a>&gt;</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>" &lt;<a href="mailto:roberto.minelli@usi.ch">roberto.minelli@usi.ch</a>&gt; wrote:<br>
<br>
&gt; Hi,<br>
&gt;<br>
&gt; While using Fuel in a 2.0 image to serialize some objects (including CompiledMethods) I'm getting this error: SubscriptOutOfBounds: 27.<br>
&gt;<br>
&gt; 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>
&gt;<br>
&gt; 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 &lt;error in printString: evaluate "self printString" to debug&gt;) 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>

&gt;<br>
&gt; 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>
&gt;<br>
&gt; Thanks in advance,<br>
&gt; Roby<br>
&gt;<br>
&gt; ############################################################################################<br>
&gt; ######################################### STACK#1 ###########################################<br>
&gt; ###########################################################################################<br>
&gt; CompiledMethod(Object)&gt;&gt;errorSubscriptBounds:<br>
&gt; CompiledMethod(Object)&gt;&gt;at:<br>
&gt; InstructionStream&gt;&gt;interpretNextInstructionFor:<br>
&gt; CompiledMethod&gt;&gt;abstractBytecodeMessageAt: in Block: [(InstructionStream new method: self pc: pc)...<br>
&gt; BlockClosure&gt;&gt;on:do:<br>
&gt; CompiledMethod&gt;&gt;abstractBytecodeMessageAt:<br>
&gt; BlockClosure&gt;&gt;blockCreationBytecodeMessage<br>
&gt; BlockClosure&gt;&gt;endPC<br>
&gt; BlockClosure&gt;&gt;abstractBytecodeMessagesDo:<br>
&gt; BlockClosure&gt;&gt;isClean<br>
&gt; BlockClosure&gt;&gt;shouldBeSubstitutedByCleanCopy<br>
&gt; BlockClosure&gt;&gt;fuelAccept:<br>
&gt; FLFullGeneralMapper(FLLightGeneralMapper)&gt;&gt;mapAndTrace:<br>
&gt; FLFullGlobalMapper&gt;&gt;mapAndTrace: in Block: [(anObject class == CompiledMethod...<br>
&gt; FLLargeIdentityDictionary&gt;&gt;at:ifAbsent:<br>
&gt; FLFullGlobalMapper&gt;&gt;mapAndTrace:<br>
&gt; FLPluggableSubstitutionMapper&gt;&gt;mapAndTrace:<br>
&gt; FLPluggableSubstitutionMapper&gt;&gt;mapAndTrace:<br>
&gt; FLAnalysis&gt;&gt;mapAndTrace:<br>
&gt; FLAnalysis&gt;&gt;run<br>
&gt; FLAnalyzer&gt;&gt;setDefaultAnalysis in Block: [:anObject | (FLAnalysis...<br>
&gt; FLAnalyzer&gt;&gt;analysisFor:<br>
&gt; FLSerialization&gt;&gt;analysisStep<br>
&gt; FLSerialization&gt;&gt;run<br>
&gt; DFSerializer(FLSerializer)&gt;&gt;setDefaultSerialization in Block: [:anObject :anEncoder | (FLSerialization...<br>
&gt; DFSerializer(FLSerializer)&gt;&gt;serialize:on: in Block: [:anEncoder | ...<br>
&gt; FLEncoder class&gt;&gt;on:globalEnvironment:do: in Block: [aBlock value: anEncoder]<br>
&gt; BlockClosure&gt;&gt;ensure:<br>
&gt; FLEncoder class&gt;&gt;on:globalEnvironment:do:<br>
&gt; DFSerializer(FLSerializer)&gt;&gt;serialize:on:<br>
&gt;<br>
&gt;<br>
&gt; ############################################################################################<br>
&gt; ######################################### STACK#2 ###########################################<br>
&gt; ############################################################################################<br>
&gt; Decompiler(Object)&gt;&gt;error:<br>
&gt; Decompiler&gt;&gt;decompileBlock:<br>
&gt; BlockClosure&gt;&gt;decompile<br>
&gt; BlockClosure&gt;&gt;printOn:<br>
&gt; BlockClosure(Object)&gt;&gt;printStringLimitedTo: in Block: [:s | self printOn: s]<br>
&gt; String class(SequenceableCollection class)&gt;&gt;streamContents:limitedTo:<br>
&gt; BlockClosure(Object)&gt;&gt;printStringLimitedTo:<br>
&gt; BlockClosure(Object)&gt;&gt;printString<br>
&gt; BlockClosure&gt;&gt;DoIt<br>
&gt; Compiler&gt;&gt;evaluate:in:to:notifying:ifFail:logged:<br>
&gt; SmalltalkEditor&gt;&gt;evaluateSelectionAndDo: in Block: [rcvr class evaluatorClass new...<br>
&gt; BlockClosure&gt;&gt;on:do:<br>
&gt; SmalltalkEditor&gt;&gt;evaluateSelectionAndDo:<br>
&gt; SmalltalkEditor&gt;&gt;evaluateSelection<br>
&gt; PluggableTextMorph&gt;&gt;doIt in Block: [textMorph editor evaluateSelection]<br>
&gt; PluggableTextMorph&gt;&gt;handleEdit: in Block: [result := editBlock value]<br>
&gt; TextMorphForEditView(TextMorph)&gt;&gt;handleEdit:<br>
&gt; PluggableTextMorph&gt;&gt;handleEdit:<br>
&gt; PluggableTextMorph&gt;&gt;doIt<br>
&gt; SmalltalkEditor class&gt;&gt;buildSmalltalkEditorKeymappingsOn: in Block: [:morph | morph doIt]<br>
&gt; BlockClosure&gt;&gt;cull:<br>
&gt; BlockClosure&gt;&gt;cull:cull:<br>
&gt; BlockClosure&gt;&gt;cull:cull:cull:<br>
&gt; KMCategoryTarget&gt;&gt;completeMatch:buffer:<br>
&gt; KMKeymap&gt;&gt;notifyCompleteMatchTo:buffer: in Block: [:l | l completeMatch: self buffer: aBuffer]<br>
&gt; Array(SequenceableCollection)&gt;&gt;do:<br>
&gt; KMKeymap&gt;&gt;notifyCompleteMatchTo:buffer:<br>
&gt; KMKeymap&gt;&gt;onMatchWith:notify:andDo:<br>
&gt; KMCategory&gt;&gt;onMatchWith:notify:andDo: in Block: [:entry | entry...<br>
&gt; Set&gt;&gt;do:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Pharo-fuel mailing list<br>
&gt; <a href="mailto:Pharo-fuel@lists.gforge.inria.fr">Pharo-fuel@lists.gforge.inria.fr</a><br>
&gt; <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>