<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Aug 29, 2012, at 6:00 PM, R. Matthew Emerson wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Aug 29, 2012, at 7:04 PM, Alexander Repenning <<a href="mailto:Alexander.Repenning@colorado.edu">Alexander.Repenning@colorado.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>I think I have here a pretty Kosher (uses retain, does not use depreciated functions) version of the dialog + memory surge problem. This version of choose-file-dialog is completely stripped of any non essential activity. It does not even return the path, i.e., there is no practical value to this function.</div><div><br></div><div>Please have a go and see if you can or cannot experience that Memory surge phenomenon. Please follow the instructions closely. Otherwise you may miss the issues at sometimes can be kind subtle. </div></div></blockquote><div><br></div><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>;; CCL 1.8.1 64 (Mac App store) crash on Mountain Lion 10.8.1</div></div></blockquote><div><br></div>The version of CCL in the Mac App Store still contains a bug in it that Mountain Lion triggers.  I am pretty sure that your test case is running into that bug.</div></div></blockquote><div><br></div><div><br></div><div><br></div><div>I think we are going around in circles. While that bug does sound similar in spirit I am quite sure its not the one because:</div><div><br></div><div>1) the error also manifests itself in the 32 bit version of CCL</div><div><br></div><div>2) We tried the most recent version of CCL <span class="Apple-style-span" style="font-size: 12px; ">1.9-dev-r15450-trunk  (DarwinX8632)! and the 64 bit version. Both the test case and the full app crashed with the same Memory surge.</span></div><div><span class="Apple-style-span" style="font-size: 12px; "> </span></div><div><span class="Apple-style-span" style="font-size: 12px; ">When I try your modified version (which we actually did try before as well) things APPEAR to be better as long as you just dismiss the dialog with ESC. However, the reason for that appear to be that then the file choose dialog goes into this super slow, spinning indeterminate progress indicator mode where it does not list contents of folder. That is interesting. However, if you actually try to select a file, instead of pressing ESC, then there is a good chance it will crash even faster than before. I never made it beyond the first attempt. Can you confirm?</span></div><div><br></div><div>3) An even simpler test just starting 1000 processes, one after the other, does not exhibit the problem (32 bit).</div><div><br></div><div>In summary I think we still don't know what is going on but I don't think it is connected to that specific malloc issue you mention.</div><div><br></div><div>Need to run but I do remember reading that in sandbox mode (we are NOT running in sandbox or or are we?) file choosers are NOT running in the main thread but in some other special thread. </div><div><br></div><div>hmmm....</div><div><br></div><div><br></div><div>puzzled,  Alex </div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>Gary mentioned this bug in a previous message:</div><div><br></div><div><span style="font-family: monospace; ">- there's a known bug in 64-bit CCL on OSX that can cause lisp thread creation</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  to go into a horrible CPU-burning/memory-thrashing state.  I think that that</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  bug's been present for a long time (since PPC64 days), but it's apparently</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  much easier to trigger on 10.8 (and/or recent versions of CCL) than it has been.</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  The problem ultimately has to do with whether or not #_malloc (actually #_calloc)</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  returns a 64-bit pointer whose high 32 bits are 0 and there can be many factors</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  that affect that (many of them subtle), and the fix is to stop assuming that</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  it does and allocate such pointers ourselves.</span><br style="font-family: monospace; "><br style="font-family: monospace; "><span style="font-family: monospace; ">  That's been fixed (in the trunk for a few weeks and in the 1.8 tree</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  for a few days) in svn; the symptoms happen to be very similar to</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  what people have reported seeing with CHOOSE-FILE-DIALOG, but the</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  CHOOSE-FILE-DIALOG problems seem to occur for at least some people</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  in 32-bit CCL (which was never affected by this thread-creation</span><br style="font-family: monospace; "><span style="font-family: monospace; ">  problem) and in freshly-updated 64-bit versions.</span></div><div><br></div><div>The fix for this bug is not yet in the Mac App Store version of CCL.  I'll try to update the Mac App Store version soon, but in the meantime, please try using up-to-date CCL obtained via Subversion (either trunk or 1.8).</div><div><br></div><div>I modified your test case to make the call to the open panel take place in the main thread.  It seemed to work as expected for me in an up-to-date trunk CCL.</div><div><br></div><div>;; modified to use gui:execute-in-gui</div><div><div>(defun THE-AMAZING-MEMORY-SURGE ()</div><div>  (dotimes (i 100)</div><div>    (gui:execute-in-gui #'(lambda ()</div><div>                            (choose-file-dialog2)))</div><div>    (ccl::process-run-function "pretent to load project"  #'(lambda ()))))</div><div><br></div></div><div><br></div><div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div><br></div><div><br></div><div>(defun choose-file-dialog2 ()</div><div>  ;; 100% kosher: retain, no use of depreciated calls</div><div>  (let ((panel (#/retain (#/openPanel ns:ns-open-panel))))</div><div>    (#/runModal panel)</div><div>    (#/release panel)))</div><div><br></div><div><br></div><div>(defun THE-AMAZING-MEMORY-SURGE ()</div><div>  (dotimes (i 100)</div><div>    (ccl::with-autorelease-pool</div><div>        (choose-file-dialog2)</div><div>      (ccl::process-run-function "pretent to load project"  #'(lambda () )))))</div><div><br></div><div><br></div><div>;; this will pop up a file chooser for a number of times. Each time just press ESC and watch the Activity Monitor. </div><div>;; Set view > update frequency in Actvity Monitor to very often (0.5s) for best results</div><div>;; Watch out for Clozure CL % CPU and Real Mem</div><div>;; for some time Real Mem will go up gradually (memory leak) then at some unpredicatable time it will SURGE to GIGABITES of memory and ultimately crash CCL</div><div>;; with with-autorelease-pool CCL may crash quite quickly with a Unhandled exception 10, comment out if needed</div><div><br></div><div>; (the-amazing-memory-surge)</div></div></div></blockquote></div></div>_______________________________________________<br>Openmcl-devel mailing list<br><a href="mailto:Openmcl-devel@clozure.com">Openmcl-devel@clozure.com</a><br>http://clozure.com/mailman/listinfo/openmcl-devel<br></blockquote></div><br><div>
<span class="Apple-style-span" style="font-size: 12px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Prof. Alexander Repenning</font></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><br class="khtml-block-placeholder"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px">University of Colorado</p><p style="margin: 0.0px 0.0px 0.0px 0.0px">Computer Science Department</p><p style="margin: 0.0px 0.0px 0.0px 0.0px">Boulder, CO 80309-430</p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><br class="khtml-block-placeholder"></p><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">vCard: <a href="http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf">http://www.cs.colorado.edu/~ralex/AlexanderRepenning.vcf</a></font></p><br class="Apple-interchange-newline"></span></span></span>
</div>
<br></body></html>