<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><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>I forgot to mention that I did use the builtin collection instead of the special Fuel collections as suggested by Mariano. That didn't change anything either.</div><br><blockquote type="cite">Hi<div><br></div><div>I'm forwarding this because I'd like to rule out a VM problem. Short summary:</div><div>I fork a squeak image and then serialize objects with Fuel. In roughly 40% of the cases the fork suddenly locks and consumes 100% CPU. The trace I most often see with gdb in that case is the one with&nbsp;</div><div>"#0 &nbsp;0x08060453 in updatePointersInRootObjectsFromto ()" at the top.</div><div><br></div><div>The object processed when the lockup occufrs is always of class Timestamp, although that doesn't necessarily mean anything. Maybe it's more about the number of objects.</div><div><br></div><div>I'm working on Debian, 32-bit and I can reproduce the problem with SqueakVM&nbsp;4.4.7-2364 and&nbsp;4.0.3-2202 (the newer ones wont run because of glibc). I haven't tried Cog yet.</div><div><br></div><div>I also just checked that the problem occurs even if I don't serialize any timestamps (nor Process, Delay, Monitor, Semaphore; just to be sure).</div><div><br></div><div>So if anyone has a clue as to what might be going on I'd really appreciate the help.</div><div><br></div><div>Cheers,</div><div>Max</div><div><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] Possible collections problem</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;">15. Mai 2013 16:53:10 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">I cannot see anything in particular. Too many GC stuff.<div style="">So I wouldn't spend more time trying to debug. I would try the none large collections. Then I would try with latest Cog and latest StackVM.</div>
<div style=""><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, May 15, 2013 at 11:47 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: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div style="word-wrap:break-word"><div>I've had several forks hanging around just now. Apart from one all of these were locked. I attached gdb and generated the c stack for all of them. Not sure if there's anything really interesting in there although clearly a lot of time is spent in GC and with creation of objects. That doesn't have to mean anything though.</div>
<div><br></div><div>I haven't yet tried your suggestion Mariano.</div><div><br></div><div>Cheers,</div><div>Max</div><div><br></div><div><br></div><div><div>[Thread debugging using libthread_db enabled]</div><div>0x08060453 in updatePointersInRootObjectsFromto ()</div>
<div><br></div><div>#0 &nbsp;0x08060453 in updatePointersInRootObjectsFromto ()</div><div>#1 &nbsp;0x08060a77 in mapPointersInObjectsFromto ()</div><div>#2 &nbsp;0x08060bb0 in incCompBody ()</div><div>#3 &nbsp;0x08065fa7 in incrementalGC ()</div>
<div>#4 &nbsp;0x080661a4 in sufficientSpaceAfterGC ()</div><div>#5 &nbsp;0x08069420 in primitiveNew ()</div><div>#6 &nbsp;0x0806de15 in interpret ()</div><div>#7 &nbsp;0x08073dfe in main ()</div><div><br></div><div><br></div><div><br></div><div>
[Thread debugging using libthread_db enabled]</div><div>0x08060453 in updatePointersInRootObjectsFromto ()</div><div><br></div><div>#0 &nbsp;0x08060453 in updatePointersInRootObjectsFromto ()</div><div>#1 &nbsp;0x08060a77 in mapPointersInObjectsFromto ()</div>
<div>#2 &nbsp;0x08060bb0 in incCompBody ()</div><div>#3 &nbsp;0x08065fa7 in incrementalGC ()</div><div>#4 &nbsp;0x080661a4 in sufficientSpaceAfterGC ()</div><div>#5 &nbsp;0x08069420 in primitiveNew ()</div><div>#6 &nbsp;0x0806de15 in interpret ()</div>
<div>#7 &nbsp;0x08073dfe in main ()</div><div><br></div><div><br></div><div><br></div><div><br></div><div>[Thread debugging using libthread_db enabled]</div><div>0x08060453 in updatePointersInRootObjectsFromto ()</div><div><br>
</div><div>#0 &nbsp;0x08060453 in updatePointersInRootObjectsFromto ()</div><div>#1 &nbsp;0x08060a77 in mapPointersInObjectsFromto ()</div><div>#2 &nbsp;0x08060bb0 in incCompBody ()</div><div>#3 &nbsp;0x08065fa7 in incrementalGC ()</div><div>
#4 &nbsp;0x080661a4 in sufficientSpaceAfterGC ()</div><div>#5 &nbsp;0x0806fed2 in clone ()</div><div>#6 &nbsp;0x08070095 in primitiveClone ()</div><div>#7 &nbsp;0x0806de15 in interpret ()</div><div>#8 &nbsp;0x08073dfe in main ()</div><div><br></div>
<div><br></div><div>[Thread debugging using libthread_db enabled]</div><div>0x08060453 in updatePointersInRootObjectsFromto ()</div><div><br></div><div>#0 &nbsp;0x08060453 in updatePointersInRootObjectsFromto ()</div><div>#1 &nbsp;0x08060a77 in mapPointersInObjectsFromto ()</div>
<div>#2 &nbsp;0x08060bb0 in incCompBody ()</div><div>#3 &nbsp;0x08065fa7 in incrementalGC ()</div><div>#4 &nbsp;0x080661a4 in sufficientSpaceAfterGC ()</div><div>#5 &nbsp;0x08069270 in primitiveNewWithArg ()</div><div>#6 &nbsp;0x0806de15 in interpret ()</div>
<div>#7 &nbsp;0x08073dfe in main ()</div><div><br></div><div><br></div><div>[Thread debugging using libthread_db enabled]</div><div>0xb76f0f68 in select () from /lib/libc.so.6</div><div><br></div><div>#0 &nbsp;0xb76f0f68 in select () from /lib/libc.so.6</div>
<div>#1 &nbsp;0x08070880 in aioPoll ()</div><div>#2 &nbsp;0xb762419e in ?? () from /usr/lib/squeak/4.0.3-2202//so.vm-display-X11</div><div>#3 &nbsp;0x08073595 in ioRelinquishProcessorForMicroseconds ()</div><div>#4 &nbsp;0x08061f24 in primitiveRelinquishProcessor ()</div>
<div>#5 &nbsp;0x0806de15 in interpret ()</div><div>#6 &nbsp;0x08073dfe in main ()</div><div><br></div><div><br></div><div>[Thread debugging using libthread_db enabled]</div><div>0x08060453 in updatePointersInRootObjectsFromto ()</div>
<div><br></div><div>#0 &nbsp;0x08060453 in updatePointersInRootObjectsFromto ()</div><div>#1 &nbsp;0x08060a77 in mapPointersInObjectsFromto ()</div><div>#2 &nbsp;0x08060bb0 in incCompBody ()</div><div>#3 &nbsp;0x08065fa7 in incrementalGC ()</div>
<div>#4 &nbsp;0x080661a4 in sufficientSpaceAfterGC ()</div><div>#5 &nbsp;0x08069420 in primitiveNew ()</div><div>#6 &nbsp;0x0806de15 in interpret ()</div><div>#7 &nbsp;0x08073dfe in main ()</div><div><br></div><div><br></div><div><br></div><div>
[Thread debugging using libthread_db enabled]</div><div>0x08064e7e in markAndTrace ()</div><div><br></div><div>#0 &nbsp;0x08064e7e in markAndTrace ()</div><div>#1 &nbsp;0x0806593a in markPhase ()</div><div>#2 &nbsp;0x08065f60 in incrementalGC ()</div>
<div>#3 &nbsp;0x080661a4 in sufficientSpaceAfterGC ()</div><div>#4 &nbsp;0x0806fed2 in clone ()</div><div>#5 &nbsp;0x08070095 in primitiveClone ()</div><div>#6 &nbsp;0x0806de15 in interpret ()</div><div>#7 &nbsp;0x08073dfe in main ()</div></div><div>
<div class="h5"><div><br></div><div><br></div><div><br></div><br><div><div>On 15.05.2013, at 13:59, Mariano Martinez Peck &lt;<a href="mailto:marianopeck@gmail.com" target="_blank">marianopeck@gmail.com</a>&gt; wrote:</div>
<br><blockquote type="cite"><div dir="ltr">Ok. So, first thing you should try, is to replace the uses of LargeIdentityDictionary with IdentityDictionary. And LargeIdentitySet with IdentitySet.<div>If the problem disappears, then yes, there is something wrong with LargeCollections. If there is a problem with them, try updating VM, since they use a particular primitive.&nbsp;</div>

<div>Let us know!</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, May 14, 2013 at 9:29 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"><div style="word-wrap:break-word"><br><div><div><div>On 14.05.2013, at 13:52, Mariano Martinez Peck &lt;<a href="mailto:marianopeck@gmail.com" target="_blank">marianopeck@gmail.com</a>&gt; wrote:</div>

<br><blockquote type="cite"><div dir="ltr">Hi Max. Question, are you able to reproduce the problem?</div></blockquote><div><br></div></div><div>Yes, but not "on purpose". The situation usually happens once or twice a day and then with consistent log entries. That's why I want to use gdb the next time it happens.</div>

<div><br><blockquote type="cite"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 30, 2013 at 3:57 PM, 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">Hi guys<br>
<br>
I have a problem serializing a graph. Sometimes (not always) the image will consume +/- 100% CPU and stop responding. I was able to pin the problem down a bit:<br>
- fails always in FLIteratingCluster&gt;&gt;registerIndexesOn: when called from FLFixedObjectCluster with class TimeStamp (this might not actually be relevan but it's consistent)<br>
- the problem *might* be in FLLargeIdentityDictionary&gt;&gt;at:put: (or further up the stack)<br>
<br>
I've done excessive logging to a file but even with flushing after every write the results are not consistent. Sometimes the image locks after leaving #at:put: sometimes it does somewhere in the middle or in #registerIndexesOn: (but remember: the logging might not be precise).<br>



<br>
It's probably not the size of the objects in the cluster (the graph is big but not overly large), since there are other clusters with more objects.<br>
<br>
What I did find is that the #grow operation for HashedCollections can be *very* slow, up to 20 seconds or more, at other times the snapshot runs through within no time.<br>
<br>
So here's my theory: There migth be a VM problem with HashedCollections.<br>
Now, the VM is a rather old one and I haven't had the possibility to test this with a newer one (but I'll probably have to). The version is Squeak4.0.3-2202 running on 32-bit Debian Squeeze.<br>
<br>
I'll try some more but if anyone has any ideas I'd be very happy :)<br>
<br>
Cheers,<br>
Max<br>
_______________________________________________<br>
Pharo-fuel mailing list<br>
<a href="mailto:Pharo-fuel@lists.gforge.inria.fr" target="_blank">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>
</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" target="_blank">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>

</blockquote></div></div><br></div><br>_______________________________________________<br>
Pharo-fuel mailing list<br>
<a href="mailto:Pharo-fuel@lists.gforge.inria.fr" target="_blank">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></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" target="_blank">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>
</blockquote></div><br></div></div></div><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></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><a href="http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel">http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-fuel</a><br></blockquote></div><br></div></blockquote></body></html>