Thread overview
[Issue 22778] druntime: infinite loop in gc_term if an object destructor throws
Feb 16, 2022
Iain Buclaw
Dec 17, 2022
Iain Buclaw
February 16, 2022
https://issues.dlang.org/show_bug.cgi?id=22778

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ibuclaw@gdcproject.org

--- Comment #1 from Iain Buclaw <ibuclaw@gdcproject.org> ---
There's already this guard in defaultTraceHandler:
---
// avoid recursive GC calls in finalizer
import core.memory : GC;
if (GC.inFinalizer)
    return null;
---

So if the GC cannot be avoided entirely in allocating, there would need to be a similar check for when GC.collect() is running.

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=22778

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P2

--
April 21, 2024
https://issues.dlang.org/show_bug.cgi?id=22778

Steven Schveighoffer <schveiguy@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |schveiguy@gmail.com

--- Comment #2 from Steven Schveighoffer <schveiguy@gmail.com> ---
I think this can be closed. The behavior doesn't happen anymore, and I think we've fixed a few of these chicken-and-egg problems that were there before.

--
December 07
https://issues.dlang.org/show_bug.cgi?id=22778

--- Comment #3 from dlangBugzillaToGithub <robert.schadek@posteo.de> ---
THIS ISSUE HAS BEEN MOVED TO GITHUB

https://github.com/dlang/dmd/issues/17440

DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB

--