digitalmars.D.bugs - [Issue 22778] New: druntime: infinite loop in gc_term if an object
- d-bugmail puremagic.com (83/83) Feb 16 2022 https://issues.dlang.org/show_bug.cgi?id=22778
https://issues.dlang.org/show_bug.cgi?id=22778 Issue ID: 22778 Summary: druntime: infinite loop in gc_term if an object destructor throws Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: critical Priority: P1 Component: druntime Assignee: nobody puremagic.com Reporter: ibuclaw gdcproject.org --- struct S8 { int b; ~this() { assert(b == 7); } } void main() { S8 *s = new S8(9); } --- Backtrace --- flags=flags entry=0, req=0x7fffffffd3c0, rem=0x7fffffffd3d0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78 out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 () () core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), core.in ternal.gc.impl.conservative.gc.mallocTime, core.internal.gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) () core.internal.gc.impl.conservative.gc.ConservativeGC.malloc(ulong, uint, const(TypeInfo)) () core.internal.gc.impl.conservative.gc.Gcx.fullcollect(bool, bool, bool) () core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.fullCollectNoStack().go(core.internal.gc.impl.conservative.gc. Gcx*), core.internal.gc.impl.conservative.gc.Gcx*).runLocked(ref core.internal.gc.impl.conservative.gc.Gcx*) () core.internal.gc.impl.conservative.gc.ConservativeGC.fullCollectNoStack() () core.internal.gc.impl.conservative.gc.ConservativeGC.collectNoStack() () --- To highlight more specifically --- ... ... --- D runtime should not be using `_d_newclass` here. --
Feb 16 2022