Bug 15946 – Exception collected during unwinding

Status
NEW
Severity
enhancement
Priority
P4
Component
druntime
Product
D
Version
D2
Platform
x86_64
OS
Linux
Creation time
2016-04-21T15:11:31Z
Last change time
2024-12-07T13:36:31Z
Assigned to
No Owner
Creator
Marenz
Moved to GitHub: dmd#17151 →

Comments

Comment #0 by dmdtracker — 2016-04-21T15:11:31Z
I have code within a fiber that looks roughly like this: ``` try { .. } finally { /* code that yields the fiber for some time */ } ``` When the yielding lasts long enough that the GC collects in between, I am getting a segfault because the exception used in the unwind process has been collected. I don't have direct prove that that is happening, but I have several indicators: * It does not happen with GC.disable() * I put printouts in the Exception d'tor and sure enough I see a bunch of exceptions collected shortly before the crash Some more fiddling showed that this variation of the code does not show the problem: ``` try { .. } catch ( Exception e ) {} // literally empty finally { /* code that yields the fiber for some time */ } ``` I tried to create a minimal test case but failed so far.
Comment #1 by robert.schadek — 2024-12-07T13:36:31Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/17151 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB