www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15947] New: [REG 2.069.0?] simple multithreaded program +

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 puremagic.com
          Reporter: gassa 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

--
Apr 21 2016