<div dir="ltr">Hi Andrei,<div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 23, 2015 at 7:59 AM, Andrei Chis <span dir="ltr">&lt;<a href="mailto:chisvasileandrei@gmail.com" target="_blank">chisvasileandrei@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"><div dir="ltr">Hi,<div><br></div><div>With both the latest and stable vm I have an use case in which the vm crashed in SmalltalkImage&gt;&gt;garbageCollect.</div><div><br></div><div>To set up an image that exhibits the failure , execute this with the latest pharo version:</div><div><br></div><div>







<p><span>/pharo Pharo.image eval --save &quot;{ { &#39;ConfigurationOfRubric&#39;. &#39;Pharo&#39;. &#39;Rubric&#39; }. { &#39;ConfigurationOfGlamourCore&#39;. &#39;Moose&#39;. &#39;Glamour&#39; }. { &#39;ConfigurationOfGTInspectorCore&#39;. &#39;Moose&#39;. &#39;GToolkit&#39; }. { &#39;ConfigurationOfGTPlaygroundCore&#39;. &#39;Moose&#39;. &#39;GToolkit&#39; }. { &#39;ConfigurationOfGTEventRecorder&#39;. &#39;Moose&#39;. &#39;GToolkit&#39; }. { &#39;ConfigurationOfGTSpotter&#39;. &#39;Moose&#39;. &#39;GToolkit&#39; }. } do: [ :spec | Gofer new smalltalkhubUser: spec second project: spec third; package: spec first; load ].&quot;</span></p></div><div>







<p><span>./pharo Pharo.image config <a href="http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main" target="_blank">http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main</a> ConfigurationOfGToolkitCore --install=3.2</span></p><p><span>Then  attempting to run the following code triggers the failure:</span></p><p>./pharo Pharo.image eval --save &quot;TestRunner open model packageSearchUpdate: &#39;gt-tests-inspector&#39;; classSearchUpdate: &#39;GTInspectorExamplesTest&#39;; runAll&quot;<br></p><p>Based on the trace below the failure happens when the test GTInspectorExamplesTest calls &#39;Smalltalk&gt;&gt;garbageCollect&#39; in the setUp method.</p><p>That call can be removed, however, in other runs the failure happens  in other methods calling Smalltalk&gt;&gt;garbageCollect.</p><p>Is it possible that this is a bug with the image (some broken object) or is it a vm bug?</p></div></div></blockquote><div><br></div><div>The way to test this is to build an assert VM and then use the leak checker.  The leak checker will allow you to narrow down the cause.  If the leak checker shows no corruption then its definitely a GC bug.  If there leak checker does show corruption before GC then one still has to find out what caused the heap corruption, but you can use the leak checker to narrow the search.</div><div><br></div><div>HTH</div><div>Eliot</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><p>Cheers,</p><p>Andrei</p><p><br></p><p><br></p><p>andrei$ ./pharo Pharo.image eval --save &quot;{ { &#39;ConfigurationOfRubric&#39;. &#39;Pharo&#39;. &#39;Rubric&#39; }. { &#39;ConfigurationOfGlamourCore&#39;. &#39;Moose&#39;. &#39;Glamour&#39; }. { &#39;ConfigurationOfGTInspectorCore&#39;. &#39;Moose&#39;. &#39;GToolkit&#39; }. { &#39;ConfigurationOfGTPlaygroundCore&#39;. &#39;Moose&#39;. &#39;GToolkit&#39; }. { &#39;ConfigurationOfGTEventRecorder&#39;. &#39;Moose&#39;. &#39;GToolkit&#39; }. { &#39;ConfigurationOfGTSpotter&#39;. &#39;Moose&#39;. &#39;GToolkit&#39; }. } do: [ :spec | Gofer new smalltalkhubUser: spec second project: spec third; package: spec first; load ].&quot;<br></p><p>andrei$ ./pharo Pharo.image config <a href="http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main" target="_blank">http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main</a> ConfigurationOfGToolkitCore --install=3.2</p><p>andrei$ ./pharo Pharo.image eval --save &quot;TestRunner open model packageSearchUpdate: &#39;gt-tests-inspector&#39;; classSearchUpdate: &#39;GTInspectorExamplesTest&#39;; runAll&quot;</p><p><br></p><p>Segmentation fault Mon Nov 23 16:48:36 2015</p><p><br></p><p><br></p><p><a href="https://github.com/pharo-project/pharo-vm.git" target="_blank">https://github.com/pharo-project/pharo-vm.git</a> Commit: 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200 By: Esteban Lorenzano &lt;<a href="mailto:estebanlm@gmail.com" target="_blank">estebanlm@gmail.com</a>&gt; Jenkins build #15016</p><p><br></p><p>C stack backtrace:</p><p>0   Pharo                               0x0004cacf reportStackState + 159</p><p><br></p><p><br></p><p>Smalltalk stack dump:</p><p>0xbffbf1a0 M SmalltalkImage&gt;garbageCollect 0x1fd49e30: a(n) SmalltalkImage</p><p>0xbffbf1c0 I GTInspectorExamplesTest&gt;setUp 0x2126bc80: a(n) GTInspectorExamplesTest</p><p>0x2126cb90 is not a context</p><p><br></p><p>Most recent primitives</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>basicNew</p><p>basicNew</p><p>basicNew</p><p>@</p><p>@</p><p>@</p><p>@</p><p>shallowCopy</p><p>new</p><p>new:</p><p>new:</p><p>basicNew</p><p>basicNew</p><p>new:</p><p>basicNew</p><p>new:</p><p>replaceFrom:to:with:startingAt:</p><p>new:</p><p>basicNew</p><p>new:</p><p>replaceFrom:to:with:startingAt:</p><p>new:</p><p>basicNew</p><p>@</p><p>new:</p><p>at:put:</p><p>at:put:</p><p>perform:with:</p><p>perform:with:</p><p>perform:</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>new:</p><p>at:put:</p><p>at:put:</p><p>perform:with:</p><p>perform:with:</p><p>perform:</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>new</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>new:</p><p>at:put:</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>@</p><p>@</p><p>new:</p><p>at:put:</p><p>at:put:</p><p>at:put:</p><p>at:put:</p><p>new:</p><p>@</p><p>at:put:</p><p>@</p><p>at:put:</p><p>@</p><p>at:put:</p><p>@</p><p>at:put:</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>shallowCopy</p><p>shallowCopy</p><p>@</p><p>@</p><p>new:</p><p>at:put:</p><p>at:put:</p><p>at:put:</p><p>at:put:</p><p>new:</p><p>@</p><p>at:put:</p><p>@</p><p>at:put:</p><p>@</p><p>at:put:</p><p>@</p><p>at:put:</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>@</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>@</p><p>@</p><p>basicNew</p><p>@</p><p>@</p><p>perform:</p><p>basicNew</p><p>new:</p><p>basicNew</p><p>new:</p><p>basicNew</p><p>new:</p><p>shallowCopy</p><p>shallowCopy</p><p>primUTCMicrosecondsClock</p><p>//</p><p>basicNew</p><p>basicNew</p><p>new:</p><p>at:put:</p><p>at:put:</p><p>at:put:</p><p>at:put:</p><p>value</p><p>valueNoContextSwitch</p><p>basicNew</p><p>new:</p><p>basicNew</p><p>new:</p><p>new:</p><p>basicNew</p><p>new:</p><p>replaceFrom:to:with:startingAt:</p><p>primitiveGarbageCollect</p><p>**IncrementalGC**</p><p>**FullGC**</p><p>garbageCollectMost</p><p>**IncrementalGC**</p><p>basicNew</p><p>new:</p><p>someInstance</p><p>basicNew</p><p>new:</p><p>someInstance</p><p>basicNew</p><p>new:</p><p>someInstance</p><p>new:</p><p>basicNew</p><p>new:</p><p>replaceFrom:to:with:startingAt:</p><p>primitiveGarbageCollect</p><p>**IncrementalGC**</p><p>**FullGC**</p><p>garbageCollectMost</p><p>**IncrementalGC**</p><p>wait</p><p>shallowCopy</p><p>shallowCopy</p><p>signal</p><p>wait</p><p>shallowCopy</p><p>shallowCopy</p><p>at:put:</p><p>at:put:</p><p>at:put:</p><p>at:put:</p><p>at:put:</p><p>at:put:</p><p>signal</p><p>wait</p><p>shallowCopy</p><p>shallowCopy</p><p>at:put:</p><p>at:put:</p><p>signal</p><p>new:</p><p>basicNew</p><p>new:</p><p>replaceFrom:to:with:startingAt:</p><p>primitiveGarbageCollect</p><p>**IncrementalGC**</p><p>**FullGC**</p><p><br></p><p><span style="white-space:pre-wrap">        </span>(Segmentation fault)</p><p>./pharo: line 11:  5224 Abort trap: 6           &quot;$DIR&quot;/&quot;pharo-vm/Pharo.app/Contents/MacOS/Pharo&quot; --headless &quot;$@&quot;</p></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>