[squeak-dev] Recovery project hanging after recursive error in debugger

David T. Lewis lewis at mail.msen.com
Tue Aug 1 12:18:00 UTC 2017


Is anyone else experiencing this problem? I have not seen it, but I have
not recently been doing things that could lead to an emergency evaluator,
so it is not surprising that I would not have seen it. Anyone else?

The ErrorRecursionGuard mutex is a relatively new addition (Tools-cmm.755
added in April), so it certainly seems possible the we may have a problem
related to the mutex.

Dave

On Sun, Jul 30, 2017 at 08:42:43PM +0200, Jakob Reschke wrote:
> Hi,
> 
> Recently, it occurs quite frequently in my image that something goes
> so wrong that the Debugger fails to open and I am bumped out to the
> parent Project. However, the debugger for the crippled Process does
> not open there either, because the ErrorRecursionGuard Mutex is still
> held by the suspended Process that wants to be debugged.
> 
> Interrupting with Cmd+. and terminating the suspended process usually
> works to get going again, but this seems not like something I should
> have to do manually. Is something broken with the recovery mechanism?
> 
> More details from the stack (extracted with the Process Browser):
> - some UnhandledError is raised
> - ToolSet class>>debugError: is called
> - Debugger class>>morphicOpenOn:context:label:contents:fullView: is
> reached, the ErrorRecursionGuard Mutex is acquired
> - ErrorRecursion is true there for some reason unknown to me, no
> further debuggers are on that particular stack
> - Project current handleFatalDrawingError:
> - Project class>>tryOtherProjectForRecovery:
> - SomeProjectType(Project)>>enterForEmergencyRecovery
> - MorphicProject>>suspendProcessForDebug
> 
> Now it is waiting to be picked up by the 'FATAL PROJECT ERROR!'
> debugger, but it cannot because that Mutex is still held, so the
> debugger waits for the suspended process that it should debug.
> 
> - reproduce the hanging by ProcessBrowser>>debugProcess on the suspended Process
> - Process>>debugWithTitle: ...
> - Debugger class>>morphicOpenOn:context:label:contents:fullView: is
> reached, wants to enter the critical section with ErrorRecursionGuard,
> but has to wait ...
> 
> Kind regards,
> Jakob
> 


More information about the Squeak-dev mailing list