[Issue 7938] New: Stack overflow/access violation when throwing exceptions from fibers
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Apr 18 16:04:06 PDT 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7938
Summary: Stack overflow/access violation when throwing
exceptions from fibers
Product: D
Version: D2
Platform: All
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: Phobos
AssignedTo: nobody at puremagic.com
ReportedBy: andrew.lauritzen at gmail.com
--- Comment #0 from Andrew Lauritzen <andrew.lauritzen at gmail.com> 2012-04-18 16:04:59 PDT ---
Throwing exceptions from fibers seems buggy on Windows in both 2.058 and 2.059
(and perhaps earlier). The following modification to the example given in the
unit test (adding unrelated exception handling to the same scope) fails with a
"Stack Overflow" exception, followed by tons of access violations:
enum MSG = "Test message.";
string caughtMsg;
(new Fiber({
try
{
throw new Exception(MSG);
}
catch (Exception e)
{
caughtMsg = e.msg;
}
})).call();
assert(caughtMsg == MSG);
// Add these two lines
try { caughtMsg = "Hello"; }
catch (Exception e) { caughtMsg = "World"; }
It seems brittle as well. Adding a "assert(caughtMsg == "Hello");" to the end
of the above program for instance avoids the access violations (but still shows
the stack overflow in the debugger). Similarly playing with the caughtMsg
assignments (omitting one) or adding another assert at the end of the program
will sometimes cause the program to run without error. This is in debug mode
with optimizations off to theoretically avoid dead code elimination, but
clearly something is easily thrown off.
Tested on several machines in Windows 7 x64 (but with a 32-bit D2 application
of course).
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list