<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Aha. Via #handleFailingFailingBasicNew:, OutOfMemory >> #defaultAction signals the LowSpaceSemaphore. And at that point, special object 23 was not yet set. Hmm....<div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class='history_container' type='cite' style='border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;'>
                        <p style='color: #AAAAAA; margin-top: 10px;'>Am 12.07.2022 08:13:15 schrieb Marcel Taeumel <marcel.taeumel@hpi.de>:</p><div style='font-family:Arial,Helvetica,sans-serif'><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Eliot --<div class="mb_sig"></div>
                                        <div><br></div><div>> <span style="font-size: 10pt">Our #lowSpaceWatcher seems to be broken because "Smalltalk specialObjectsArray at: 23" is always "nil".</span></div><div>>> [...] <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">The vm sets it to the active process when it signals the low space semaphore.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">And that's not working at the moment. Even after the LowSpaceSemaphore got signaled:</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><div style=""><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">Smalltalk vmParameterAt: 67 put: 1 * 1024 * 1024 * 1024.</span></span></div><div style=""><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">Array new: (0.125 * 1 * 1024 * 1024 * 1024) rounded.</span></span></div></div><div style=""><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px"><br></span></span></div><div style=""><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">One has to push CMD+Dot to then see that the #lowSpaceWatcher complains that  it cannot retrieve the preemptedProcess via special object 23.</span></span></div><div style=""><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px"><br></span></span></div><div style=""><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">> </span></span><span style="font-family: Arial, Helvetica, sans-serif;font-size: 10pt">Has #primSignalAtBytesLeft: (primitive 125) any effect these days?</span></div><span style="font-size: 10pt;font-family: Arial, Helvetica, sans-serif">>> Yes.</span><div><span style="font-size: 10pt;font-family: Arial, Helvetica, sans-serif"><br></span></div><div><span style="font-size: 10pt;font-family: Arial, Helvetica, sans-serif">Hmm... I can only find places that set it to 0. :-) ... Wait ... Ah! Nevermind. xD</span></div><div><span style="font-size: 10pt;font-family: Arial, Helvetica, sans-serif"><br></span></div><div><span style="font-size: 10pt;font-family: Arial, Helvetica, sans-serif">>> </span><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">So infinite recursion (as it always did) causes heap growth, and the issue of sluggishness did to paging comes to the fore.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Ah! That was my hypothesis. Yet, since the #lowSpaceWatcher seems to be broken, I wondered what was going on.</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Thanks! :-)</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></div><div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br></span></div><div><br></div><blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 12.07.2022 08:02:28 schrieb Eliot Miranda <eliot.miranda@gmail.com>:</p><div style="font-family:Arial,Helvetica,sans-serif">Hi Marcel,<div><br>On Jul 11, 2022, at 6:15 AM, Marcel Taeumel <marcel.taeumel@hpi.de> wrote:<br><div dir="ltr"><blockquote type="cite"><br></blockquote></div><blockquote type="cite" style="min-width: 500px"><div dir="ltr"><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">Hi all --<div class="mb_sig"></div><div><br></div><div>What's the current state of our low-space guards in Squeak? That OutOfMemory error only works with larger allocations, right?</div><div><br></div><div>Our #lowSpaceWatcher seems to be broken because "Smalltalk specialObjectsArray at: 23" is always "nil". Should we replace it with "Processor preemptedProcecss"?</div></div></div></blockquote><div><br></div>No, it *should* be nil.  The vm sets it to the active process when it signals the low space semaphore.  <span style="-webkit-text-size-adjust: auto;">Hence "Smalltalk specialObjectsArray at: 23" reliably informs the image level low space code which process performed the allocation that tripped the low space trigger.</span></div><div><br><blockquote type="cite" style="min-width: 500px"><div dir="ltr"><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr"><div>Has #lowSpaceThreshold any effect these days?</div></div></div></blockquote><div><br></div>Yes.  But given that Spur attempts to grow the heap dynamically and contemporary OSs are only too happy to comply, the low space trigger may only be seen to work if a limit on old space size has been installed.  Otherwise it’ll most likely not trigger before the system starts to page itself into sluggishness.</div><div><br><blockquote type="cite" style="min-width: 500px"><div dir="ltr"><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr"><div><br></div><div>Has #primSignalAtBytesLeft: (primitive 125) any effect these days?</div></div></div></blockquote><div><br></div>Yes.</div><div><br><blockquote type="cite" style="min-width: 500px"><div dir="ltr"><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr"><div><br></div><div>Can there ever be an image-level protection against stack-page shortage? VM parameter 42 seems to be 50 (num stack pages), which lasts for quite some time in endless recursion ... but CMD+Dot stops working at some point because of some stack-growing issues? And then the VM crashes eventually.</div></div></div></blockquote><div><br></div>Again that’s not how things work.  The stack zone is fixed size.  When a new stack page is needed the oldest page is evacuated to the heap in the form of Context objects.  So infinite recursion (as it always did) causes heap growth, and the issue of sluggishness did to paging comes to the fore.</div><div><br></div><div><br><blockquote type="cite" style="min-width: 500px"><div dir="ltr"><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr"><div><br></div><div>Best,</div><div>Marcel</div></div><span></span><br></div></blockquote></div></div></blockquote></div></div></blockquote>
                                        </div></body>