[Issue 15947] New: [REG 2.069.0?] simple multithreaded program + "-profile=gc" = crash

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Thu Apr 21 08:45:35 PDT 2016


https://issues.dlang.org/show_bug.cgi?id=15947

          Issue ID: 15947
           Summary: [REG 2.069.0?] simple multithreaded program +
                    "-profile=gc" = crash
           Product: D
           Version: D2
          Hardware: All
                OS: Windows
            Status: NEW
          Severity: regression
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: gassa at mail.ru

-----prfail1.d-----
import std.concurrency;
void someWork () {auto x = [1];}
void main () {spawn (&someWork);}
-----

The above program crashes with 2.071.0 down to 2.069.0 but still works on
2.068.2.  The command line is "dmd -g -profile=gc prfail1.d" on Windows
(compiled to 32-bit by default).

The crash happens almost always, >90% of runs of the compiled program.  Here's
the error output:

-----
object.Error@(0): Access Violation
----------------
0x00409651 in nothrow int rt.profilegc._staticDtor407().__foreachbody2(ref
immutable(char)[], ref rt.profilegc.Entry)
0x00409986 in void rt.profilegc.__moddtor()
0x00427444 in __threadstartex
0x77869ED2 in RtlInitializeExceptionChain
0x77869EA5 in RtlInitializeExceptionChain
-----

With added "-m64", it just crashes and does not print anything.

This issue report originated as a forum post:
https://forum.dlang.org/post/vsjllasdndfrhhziiece@forum.dlang.org

--


More information about the Digitalmars-d-bugs mailing list